[英]cross domain ajax POST to web-api always return empty response
我想将HTML表单发布到web-api。
如果我在其他域中使用jQuery执行ajax POST,一切正常,我收到200, 但在firebug和response选项卡中,我收到空白响应,如下图所示。 这是我的jQuery代码:
var formData = new FormData($('form')[0]);
var response = '';
$.ajax({
url: 'http://localhost:2143/api/controller',
type: 'POST',
// Form data
data: formData,
//Options to tell JQuery not to process data or worry about content-type
cache: false,
contentType: false,
processData: false,
success : function(text)
{
response = text;
alert(response);
}
});
请帮我...
由于浏览器内置的same origin policy restriction
,因此不允许执行跨域AJAX调用。 您有几种可能的解决方法:
JSONP
这里的想法是您的服务器将JSON响应包装在回调中。 这仅适用于GET请求,因此从您试图发送POST请求的角度来看,它可能不适合您的情况。 您可以使用自定义JsonpMediaTypeFormatter
,如this similar post
所示。 CORS
服务器应发送特殊的Access-Control-Allow-Origin
响应HTTP标头。 缺点是较旧的浏览器可能不支持它。 这是一篇blog post
涵盖了更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.