AWS CORS问题:即使获得200个状态代码后,Ajax响应也会出现错误

时间:2016-12-19 13:02:48

标签: javascript jquery ajax amazon-web-services cors

我试图在ajax的帮助下调用API。

200 statuscode

调用ajax后,这是firefox中的响应:

enter image description here

你可以在图片中看到,我得到了Object { readyState: 0, getResponseHeader: .ajax/v.getResponseHeader(), getAllResponseHeaders: .ajax/v.getAllResponseHeaders(), setRequestHeader: .ajax/v.setRequestHeader(), overrideMimeType: .ajax/v.overrideMimeType(), statusCode: .ajax/v.statusCode(), abort: .ajax/v.abort(), state: .Deferred/d.state(), always: .Deferred/d.always(), then: .Deferred/d.then(), 11 more… } ,在回复中,我收到了我的JSON数据。

在调用ajax之后,下面是控制台的快照。

enter image description here

下面是错误对象:

Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'url I passed in ajax'. at Object.send (https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js:4:14955) at Function.ajax (https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js:4:10579) at HTMLButtonElement.<anonymous> (http://mywebsitestatic.s3-website-us-west-2.amazonaws.com/:258:4) at HTMLButtonElement.dispatch (https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js:3:6404) at HTMLButtonElement.r.handle (https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js:3:3179)

在挖掘对象后发现错误:

{{1}}

任何想法是什么错误。

我试图从stackoverflow.com中引用很多问题,但没有人与我的方案匹配。 谁能告诉我哪里出错了?

1 个答案:

答案 0 :(得分:1)

这是一个Cross Origin Resource Sharing (CORS)问题。要解决此问题,您必须在服务器中添加以下2个响应标头:

setHeader("Access-Control-Allow-Origin:", "origin url of your site");
setHeader("Access-Control-Allow-Methods", "GET, POST, PUT");

要确认这是CORS问题,您可以通过以下方式从控制台打开此chrome中的此安全检查,并尝试使用该网址,

视窗:

chrome.exe --allow-file-access-from-files

chrome.exe --allow-file-access-from-files --disable-web-security

的Mac:

open /Applications/Google\ Chrome.app/ --args --allow-file-access-from-files

注意:修复方法是在您尝试从JQuery POST请求中访问的服务器中设置上述响应标头。

启用CORS的AWS链接

http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html

参考文献 :(了解有关CORS

的更多信息

Cross Origin Request Sharing

Cross Origin Request Sharing

Same Origin Policy