我有一个WCF服务,这是一个我要调用的方法:
[OperationContract] [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)] double?[] GetPoints(string tourname);我通过WCF测试客户端检查,它工作正常
所以我需要从html页面调用这个方法。 它应该适用于跨域的其他计算机。
我用jQuery 1-6-2.min.js写了一些东西:
var varType; var varUrl; var varData; var varContentType; var varDataType; var varProcessData; function CallService() { alert("CallService"); $.ajax({ type : varType, //GET or POST or PUT or DELETE verb url : varUrl, // Location of the service data : varData, //Data sent to server contentType : varContentType, // content type sent to server dataType : varDataType, //Expected data format from server processdata : varProcessData, //True or False success : function(msg) {//On Successfull service call ServiceSucceeded(msg); }, error: ServiceFailed// When Service call fails }); } function Start() { varType = "POST"; varUrl = "http://localhost:1592/TourService.svc/GetPoints"; varData = '{"tourname ":"customname"}'; varContentType = "application/json; charset=utf-8"; varDataType = "json"; varProcessData = true; CallService(); } function ServiceSucceeded(result) { alert("ServiceSucceeded"); alert(result); } function ServiceFailed(result) { alert('Service call failed: ' + result.status + ' ' + result.statusText); varType = null; varUrl = null; varData = null; varContentType = null; varDataType = null; varProcessData = null; }但是调用了ServiceFailed函数,并显示消息“服务调用失败0错误”
如何进行WCF服务的跨域调用?(使用jQuery与否)
谢谢
I have a WCF service, this is a method which I'd to call:
[OperationContract] [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)] double?[] GetPoints(string tourname);I checked by WCF Test Client, it works fine
So I need to call this method from html page. It should work from other computer that is cross-domain.
I wrote somethig using jQuery 1-6-2.min.js:
var varType; var varUrl; var varData; var varContentType; var varDataType; var varProcessData; function CallService() { alert("CallService"); $.ajax({ type : varType, //GET or POST or PUT or DELETE verb url : varUrl, // Location of the service data : varData, //Data sent to server contentType : varContentType, // content type sent to server dataType : varDataType, //Expected data format from server processdata : varProcessData, //True or False success : function(msg) {//On Successfull service call ServiceSucceeded(msg); }, error: ServiceFailed// When Service call fails }); } function Start() { varType = "POST"; varUrl = "http://localhost:1592/TourService.svc/GetPoints"; varData = '{"tourname ":"customname"}'; varContentType = "application/json; charset=utf-8"; varDataType = "json"; varProcessData = true; CallService(); } function ServiceSucceeded(result) { alert("ServiceSucceeded"); alert(result); } function ServiceFailed(result) { alert('Service call failed: ' + result.status + ' ' + result.statusText); varType = null; varUrl = null; varData = null; varContentType = null; varDataType = null; varProcessData = null; }However ServiceFailed function is invoked with message "Service call failed 0 error"
How to make a cross-domain calling of WCF service?(using jQuery or not)
Thanks
最满意答案
基本上你需要使用jSONP而不是jSON:
使用jQuery和JSONP进行跨域AJAX和WCF服务
如果此链接消失,我会尽快提供摘要。
另请参阅jQuery文档以获取有关如何使用jSONP,jQuery和AJAX的更多信息
Basically you need to be using jSONP instead of jSON:
Using jQuery & JSONP for cross-domain AJAX with WCF services
I'll provide a summary shortly in case this link disappears.
Also see the jQuery documentation for more about how to use jSONP, jQuery & AJAX
更多推荐
WCF,function,调用,service,电脑培训,计算机培训,IT培训"/> <meta name="descr
发布评论