gpt4 book ai didi

angularjs - Http.post 请求的资源上不存在 'Access-Control-Allow-Origin' header

转载 作者:可可西里 更新时间:2023-11-01 16:11:06 25 4
gpt4 key购买 nike

所以我试图从 Angular 调用 http.post 请求到我的 MVC 帐户 Controller 以执行 externallogin 方法。我不断收到错误消息“请求的资源上不存在‘Access-Control-Allow-Origin’ header 。”所以我做了一些挖掘,它似乎与 CORS 有关。

 var chrome = 100;
var width = 500;
var height = 500;
var left = (screen.width - width) / 2;
var top = (screen.height - height - chrome) / 2;
var options = "status=0,toolbar=0,location=1,resizable=1,scrollbars=1,left=" + left + ",top=" + top + ",width=" + width + ",height=" + height;
window.open("about:blank", "login-popup", options);

authService.externalLogin(provider, returnUrl).then(function (response) {

})

var _externalLogin = function (provider, returnUrl) {
_logOut();
var deferred = $q.defer();
$http.post(
'/Account/ExternalLogin', {
provider: provider,
ReturnUrl: returnUrl
}).success(function (response) {
deferred.resolve(response);}).error(function (err, status) {
_logOut();
deferred.reject(err);});
return deferred.promise;
};

所以这会进入 Controller 并创建相应的路径。但是当它完成该方法时,它会在不重定向打开的窗口的情况下产生错误。

我尝试使用 http://www.html5rocks.com/en/tutorials/cors/ 实现 CORS但没有任何改变。有人可以解释如何解决这个问题吗?

最佳答案

尝试在您的帖子请求中设置一些标题。例如,您可以进行一些自定义:

app.run(function ($http) {
// Sends this header with any AJAX request
$http.defaults.headers.common['Access-Control-Allow-Origin'] = '*';
// Send this header only in post requests. Specifies you are sending a JSON object
$http.defaults.headers.post['dataType'] = 'json'
});

希望这对您有所帮助!

编辑:以下似乎有效(阅读下面的评论):

$http({ 
url: '/Account/ExternalLogin',
dataType: 'json',
method: 'POST',
data: {
provider: provider,
ReturnUrl: returnUrl
}
});

关于angularjs - Http.post 请求的资源上不存在 'Access-Control-Allow-Origin' header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32752320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com