来自javascript的web服务调用

我使用json在javascript文件中调用web服务,但只有当.asmx文件和javascript文件都在我的本地服务器上或者两个文件都上传到实时服务器上时才调用web服务。

但我想测试从我的本地服务器上传到我的实时服务器上的webservice。

所以请告诉我如何从本地服务器测试我的实时web服务。 因为当我的Javascript文件也存在但当javascript文件在本地并且Web服务在实时服务器上时不能正常工作时,同样的Web服务工作正常

请帮忙

问题是您正在尝试向另一个域发出请求。

您可以尝试使用jQuery.ajax调用的crossDomain选项。

https://api.jquery.com/jQuery.ajax/

您可以通过某些安全原因调用同一域上的Web服务。必须使用带填充的JSON(JSONP)。

您的服务必须返回jsonp,这基本上是javascript代码。 您需要从ajax请求向服务提供回调函数,返回的是函数调用。

示例:1

Ajax请求:

  function hello() { $.ajax({ crossDomain: true, contentType: "application/json; charset=utf-8", url: "http://example.example.com/WebService.asmx/HelloWorld", data: {}, // example of parameter being passed dataType: "jsonp", success: jsonpCallback, }); } function jsonpCallback(json) { document.getElementById("result").textContent = JSON.stringify(json); } 

服务器端代码:

 public void HelloWorld(int projectID,string callback) { String s = "Hello World !!"; StringBuilder sb = new StringBuilder(); JavaScriptSerializer js = new JavaScriptSerializer(); sb.Append(callback + "("); sb.Append(js.Serialize(s)); sb.Append(");"); Context.Response.Clear(); Context.Response.ContentType = "application/json"; Context.Response.Write(sb.ToString()); Context.Response.End(); } 

示例:2 如何从ASP.NET Web服务生成JSONP以进行跨域调用?