b24*_*b24 2 c# asp.net-mvc jquery cross-domain asp.net-web-api
我想将HTML表单发布到web-api.
如果我在其他域中使用jQuery执行ajax POST一切正常,我收到200 OK 但在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);
}
});
Run Code Online (Sandbox Code Playgroud)
请帮我...
由于same origin policy restriction内置浏览器,因此不允许执行跨域AJAX调用.您有几个可能的解决方法:
JSONP - 这里的想法是您的服务器将JSON响应包装在回调中.这仅适用于GET请求,因此从我可以看到您尝试发送POST请求的情况来看,它可能不适合您的情况.您可以使用自定义JsonpMediaTypeFormatter,如下所示this similar post.CORS- 服务器应发送特殊Access-Control-Allow-Origin响应HTTP标头.这里的缺点是旧浏览器可能不支持它.这里有blog post更详细的介绍.