使用以下代码执行ajax get请求按预期工作:
$.ajax({
type: "GET",
contentType: "application/json",
url: "http://someSeceretUrl/test/document,
dataType: "jsonp",
success: function(msg) {
console.log(msg);
},
error: function(a,b,c) {
console.log(a);
console.log(b);
console.log(c);
}
});
但是使用以下代码进行PUT ajax调用:
$.ajax({
type: "PUT",
contentType: "application/json",
url: "http://someObscureURL/test/mrmer1",
dataType: "jsonp",
data: {"name":"mike"},
success: function(msg) {
console.log(msg);
},
error: function(a,b,c) {
console.log("XMLHttpRequest: " + a);
console.log("textStatus: " + b);
console.log("errorThrown: " + c);
}
});
导致以下控制台输出:
XMLHttpRequest: [object XMLHttpRequest]
textStatus: null
errorThrown: [Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "http://static.kobj.net/kobj-static-20100219162227.js Line: 371"]
我在想某些东西阻止了PUT请求,但我不知道。 我做错了什么?
谢谢!
答案 0 :(得分:2)
我想你正在点击cross domain restrictions。如果http://username:password@somehost
被视为跨域,我不会感到惊讶。
答案 1 :(得分:0)
当我在过去完成PUT请求时,我发现没有传递contentLength标头导致抛出异常,只是一个想法