Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
通过AJAX POST调用方法WCF CORS无法从本地主机运行到其他域_Ajax_Json_Wcf_Post - Fatal编程技术网

通过AJAX POST调用方法WCF CORS无法从本地主机运行到其他域

通过AJAX POST调用方法WCF CORS无法从本地主机运行到其他域,ajax,json,wcf,post,Ajax,Json,Wcf,Post,我有WCF服务和实施的CORS。我通过AJAX POST从WCF中的localhost:59258方法调用。如果我在另一个端口上通过localhost调用这个方法,它就会工作。如果我调用相同的方法,使用相同的WCF,但另一个URL,我得到400个错误的请求,请参见下面的内容。我试着用Fiddler调用这个方法,它正在工作。哪里会有问题 第一个示例-在AJAX和Fiddler中工作 WCF,CORS监听http://localhost:8733/json/GetId 我从http://localh

我有WCF服务和实施的CORS。我通过AJAX POST从WCF中的localhost:59258方法调用。如果我在另一个端口上通过localhost调用这个方法,它就会工作。如果我调用相同的方法,使用相同的WCF,但另一个URL,我得到400个错误的请求,请参见下面的内容。我试着用Fiddler调用这个方法,它正在工作。哪里会有问题

第一个示例-在AJAX和Fiddler中工作

WCF,CORS监听
http://localhost:8733/json/GetId
我从
http://localhost:59258
方法GetId

第二个示例-在AJAX中不工作,在Fiddler中工作

WCF,CORS监听
http://some.domain:8733/json/GetId
我从
http://localhost:59258
方法GetId

以下是WCF接口的一部分:

[OperationContract]
    [WebInvoke(Method = "*",
        UriTemplate = "GetId",
        BodyStyle = WebMessageBodyStyle.WrappedRequest,
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json)]
    string GetId(string a);
以下是AJAX的一部分:

var request = $.ajax({
type: "POST",
url: "http://some.domain:15010/json/GetId",
data: JSON.stringify( {     a: "123" }),
error: function (e) {
    alert(e.responseText);
},
datatype: "json",
contentType: " text/json; charset=utf-8"
}))

fiddler日志-未工作示例:
几天后,我找到了解决办法。 问题出在WCF服务上。我尝试在互联网上使用很多解决方案。许多解决方案都与托管在IIS上的WCF有关。对于使用CORS的自托管WCF,只有一个有效的解决方案是: