Javascript 启用WCF JSONP的服务-返回的标签无效
我有一个WCF服务返回一个自定义对象(这在浏览器中工作),但是当我从Javascript调用该服务时,我在FF中得到了无效标签错误。当我把Javascript 启用WCF JSONP的服务-返回的标签无效,javascript,wcf,jsonp,Javascript,Wcf,Jsonp,我有一个WCF服务返回一个自定义对象(这在浏览器中工作),但是当我从Javascript调用该服务时,我在FF中得到了无效标签错误。当我把http://localhost/Service1.svc/MethodName/param1/param2在浏览器中,我得到了正确的信息,但它看起来与我将其转换为JSONP ie之前的JSON响应相同。我不确定响应中是否有包装。我使用的javascript如下所示: function CallService() { $.ajax({ cache:tr
http://localhost/Service1.svc/MethodName/param1/param2
在浏览器中,我得到了正确的信息,但它看起来与我将其转换为JSONP ie之前的JSON响应相同。我不确定响应中是否有包装。我使用的javascript如下所示:
function CallService() {
$.ajax({
cache:true,
type: varType, //GET or POST or PUT or DELETE verb
url: varUrl, // Location of the service
data: varData, //Data sent to server
crossDomain: true,
contentType: varContentType, // content type sent to server
dataType: varDataType, //Expected data format from server
processdata: varProcessData, //True or False
success: function (msg) {//On Successful service call
ServiceSucceeded(msg);
},
error: ServiceFailed// When Service call fails
});
function SetupTrainList(tiploc) {
try {
varType = "GET";
varUrl = "http://localhost/Service1.svc/MethodName/param1/param2";
varContentType = "application/javascript";
varDataType = "jsonp";
varProcessData = false;
CallService();
}
catch (e) {
console.log(e.toString());
}
}
世界妇联:
<OperationContract()>
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Bare,
Method:="GET",
RequestFormat:=WebMessageFormat.Json,
ResponseFormat:=WebMessageFormat.Json,
UriTemplate:="MethodName/{param1}/{param2}")>
Function MethodName(ByVal param1 As String, ByVal param2 As String) As ComplexType
函数MethodName(ByVal param1作为字符串,ByVal param2作为字符串)作为ComplexType
您可以尝试查看WCF在从浏览器调用而不是从JS调用时实际创建的消息。我猜这个问题是由于向jQuery HTTP客户机指定了jsonp
引起的。当您试图从jQuery或javascript调用WCF REST服务,并且该服务位于不同的域中时,您将获得跨域访问异常,除非您将jQuery中的数据类型更改为jsonp。在这种情况下,您需要为服务提供验证回调方法,以便将响应写回流并调用函数。通过此链接查找更多信息: