相关疑难解决方法(0)

Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Headers

我正在尝试使用发布请求将文件发送到我的服务器,但是当它发送它时会导致错误:

$http.post($rootScope.URL, {params: arguments}, {headers: {
    "Access-Control-Allow-Origin" : "*",
    "Access-Control-Allow-Methods" : "GET,POST,PUT,DELETE,OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
}
Run Code Online (Sandbox Code Playgroud)

所以我用Google搜索了错误并添加了标题:

$http.post($rootScope.URL, {params: arguments}, {headers: {
    "Access-Control-Allow-Origin" : "*",
    "Access-Control-Allow-Methods" : "GET,POST,PUT,DELETE,OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
}
Run Code Online (Sandbox Code Playgroud)

然后我得到错误:

$http.post($rootScope.URL, {params: arguments}, {headers: {
    "Access-Control-Allow-Origin" : "*",
    "Access-Control-Allow-Methods" : "GET,POST,PUT,DELETE,OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
}
Run Code Online (Sandbox Code Playgroud)

所以我用谷歌搜索了那个,我能找到的唯一类似的问题提供了一个半答案然后关闭作为主题.我应该添加/删除哪些标题?

javascript post header cors angularjs

211
推荐指数
8
解决办法
41万
查看次数

AJAX函数w/Mailgun,获取"错误请求头字段授权不允许Access-Control-Allow-Headers"

我正在努力制作一个发送电子邮件的Mailgun API的AJAX调用.Mailgun上的文档说,发布请求应该发送到" https://api.mailgun.net/v3/domain.com/messages ".我已经包含了mailgun指定的api密钥(他们指示使用'api'的用户名).由于这涉及CORS,我无法通过错误:请求头字段Access-Control-Allow-Headers不允许授权.

但是,我已经检查了网络选项卡中的请求/响应,并且来自Mailgun的响应中的"Access-Control-Allow-Origin"被设置为"*"...这应该表明它应该允许它?(请参阅下面的请求/响应):我已经编辑了实际的域和我的API密钥.

Remote Address:104.130.177.23:443
Request URL:https://api.mailgun.net/v3/domain.com/messages
Request Method:OPTIONS
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, authorization
Access-Control-Request-Method:POST
Connection:keep-alive
Host:api.mailgun.net
Origin:null
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
Response Headersview source
Access-Control-Allow-Headers:Content-Type, x-requested-with
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:*
Access-Control-Max-Age:600
Allow:POST, OPTIONS
Connection:keep-alive
Content-Length:0
Content-Type:text/html; charset=utf-8
Date:Fri, 20 Mar 2015 19:47:29 GMT
Server:nginx/1.7.9 
Run Code Online (Sandbox Code Playgroud)

我的ajax调用代码如下所示,其中我将我的凭据包含在标题中,并将域包含在帖子应该去的地方.不知道是什么导致这不起作用.是因为我正在本地主机上测试吗?我认为,由于响应头中的"访问控制允许原点:*",这会产生重大影响.任何帮助将不胜感激!谢谢.

function initiateConfirmationEmail(formObj){

  var mailgunURL;
  mailgunURL = "https://api.mailgun.net/v3/domain.com/messages"
  var auth = btoa('api:MYAPIKEYHERE');

    $.ajax({
    type …
Run Code Online (Sandbox Code Playgroud)

javascript ajax email-integration cors mailgun

9
推荐指数
1
解决办法
4343
查看次数

无法通过身份验证向mailgun发送ajax请求

我可以做这个:

curl --user 'api:MYAPIKEY' -F from=foo@bar.it -F to=MYEMAIL@gmail.com -F subject='foo' -F text='bar' https://api.mailgun.net/v3/sandbox93d8299f673a4c3295b7592956cb3d9.mailgun.org/messages
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用jquery .ajax()方法执行相同的请求时,我得到一个登录弹出窗口:

$.ajax({
    headers: {"Authorization": "Basic api:key-b50a9065a7b9bdf464f3d7a418ca96bb"},
    // url: "././mail/contact_me.php",
    url: "https://api.mailgun.net/v3/sandbox93d8299f673a4c32952b7592956cb3d9.mailgun.org/messages",
    type: "POST",
    dataType: 'json',
    data: {
        name: name,
        phone: phone,
        email: email,
        message: message
    },
    // cache: false,
    success: function() {
        alert('ok');
    },
    error: function() {
        alert('problems');
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

服务器回复401.任何想法为什么?

谢谢

ajax middleman mailgun

4
推荐指数
1
解决办法
3186
查看次数