我们尝试将一些数据放到我们的服务器上,服务器端应该没问题,因为我们已经使用DEV HTTP CLIENT Chrome扩展进行了测试。这是我们的代码,我认为它应该可以工作,但我不知道如何修复跨域错误。
$.ajax({
type: "PUT",
url: '...../add?callback=JSONPCallback',
contentType: "application/jsonp; charset=utf-8",
data: JSON.stringify({
"name": "Test",
}),
jsonpCallback: "JSONPCallback",
crossDomain: true,
success: function (result) {
console.log('Success!');
},
error: function (a, b, c) {
console.error(a + " " + b + " " + c);
},
fail: function (e) {
alert('fail');
}
});
}
在GET请求中我们使用'dataType:'jsonp'',但这不适用于PUT。是否有可能在成功方法中输出一个json对象并获取一个jsonp对象?
答案 0 :(得分:2)
JSONP是GET
操作(具体来说,是通过script
标记创建的)。
您可以执行跨域PUT
,而不是以JSONP方式。您的目标服务器必须通过Cross Origin Resource Sharing允许您的来源(并且您的浏览器必须support CORS与XMLHttpRequest
,而不是IE8和IE9 XDomainRequest
对象 - 尽管您需要IE8和IE9支持,如果你环顾四周,你可以找到一个jQuery插件,让jQuery在这些浏览器上使用XDomainRequest
。
答案 1 :(得分:0)
如果您使用的是现代浏览器(即Firefox和Chrome,Safari),则可以使用HTML5 API CORS执行此操作。 以下是Using cors
的链接