【发布时间】:2017-05-04 12:59:49
【问题描述】:
我正在尝试在 ajax 的帮助下调用 API。
$.ajax({
url:url,
type: 'POST',
data: JSON.stringify(data),
dataType: 'json',
async: false,
success: function(data, statusText, xhr) {
console.log("Calling success");
console.log(arguments);
console.log(data.status);
},
complete: function(data, statusText, xhr) {
console.log("Calling Complete");
console.log(arguments);
console.log(data.status);
},
error: function(data, statusText, xhr) {
console.log("Calling error");
console.log(arguments);
console.log(data.status);
}
});
调用 ajax 后,这是 firefox 中的响应:
您可以在图片中看到,我收到了200 statuscode,在响应中,我收到了我的 JSON 数据。
下面是调用ajax后的控制台截图。
下面是错误对象:
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… }
挖掘对象后发现的错误:
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)
任何想法是什么错误。
我尝试从 stackoverflow.com 引用许多问题,但没有一个与我的场景匹配。 谁能告诉我哪里出错了?
【问题讨论】:
-
API好像返回错误,你有权限访问服务端代码吗?
-
inspect 元素中的响应选项卡没有显示任何错误,实际上它显示了我们从响应中获取的数据。@robertc
-
那么控制台中带有
1: "error"属性的对象是什么? -
您调用的 URL 是否与托管网站的 URL 相同?如果不是,您可能会被同源策略阻止
-
@robertc 让我找到错误对象
标签: javascript jquery ajax amazon-web-services cors