Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 跨域脚本在除IE8&;9_Jquery_Ajax_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

Jquery 跨域脚本在除IE8&;9

Jquery 跨域脚本在除IE8&;9,jquery,ajax,asp.net-mvc,asp.net-web-api,Jquery,Ajax,Asp.net Mvc,Asp.net Web Api,我在myapp.myurl.com上有一个站点,它正在向api.myurl.com发出ajax请求。我知道这被认为是“跨域”的。我不明白的是,除了IE8和IE9之外,为什么ajax调用在所有浏览器中都能工作 下面是删除了详细信息的代码 $.ajax({ type: "POST", dataType: "json", headers: header, data: data, url: "api.myurl.com/getdata", success

我在
myapp.myurl.com
上有一个站点,它正在向
api.myurl.com
发出ajax请求。我知道这被认为是“跨域”的。我不明白的是,除了IE8和IE9之外,为什么ajax调用在所有浏览器中都能工作

下面是删除了详细信息的代码

 $.ajax({
    type: "POST",
    dataType: "json",
    headers: header,
    data: data,
    url: "api.myurl.com/getdata",
    success: function (data) {
    //dostuff
    }
});
有什么我能做的吗

下面是我在IE8中手动运行脚本时的响应

{readyState: 0, responseJSON: undefined, status: 0, statusText: "No Transport"}
下面是我在Chrome中手动运行脚本时的响应

Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
并且它具有正确的JSON响应。

。它们还使用称为XDomainRequest的非标准对象来跨域请求

您可能需要编写一些特殊的代码,或者使用一个特殊的jquery插件


请参阅另一篇描述类似问题的文章

我无法找到跨域发布的有效解决方案(包括升级到更高版本的WebAPI的解决方案是不可能的)


我通过在站点控制器中创建一个POST方法,然后从服务器发布到web API,解决了这个问题。

@a.Wolff none。它只是不发出请求。调用的数据类型也会很有帮助…json、jsonp等,以及显示代码used@charlietfl我更新了我的问题。数据和头是json格式的。您是否确认请求正在发出(请参阅开发工具中的“网络”选项卡)?抛出任何错误?@charlietfl是的,我可以(通过结果和Fiddler)确认,除了IE8和IE9之外,每个浏览器都在发出请求。如果我观察这些浏览器的流量,甚至不会尝试请求。完全没有错误。