我有一个非常基本的 - 用于测试 - 用VB编写的ASP.net Web服务(2.0和IIS 6.0)在远程服务器上运行
WEB服务
<WebService(Namespace:="CMS_ChecklistSystemWebService")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<System.Web.Script.Services.ScriptService()> _
Public Class CMS_ChecklistSystemWebService
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function HelloWorld() As String
Return "Hello World"
End Function
CONFIG。
我必须将以下这些行添加到我的webservice
配置中才能在浏览器中运行webservice
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
**网络服务结果**
我试图使用运行web service
的{{1}} PHP
AJAX
从JQUERY
页面调用此XAMPP v3.1
JQUERY
$.ajax({
type: "GET",
url: "http://192.168.25.11/link to web service",
data: "",
dataType: "jsonp",
contentType: "application/jsonp; charset=utf-8",
success: function(data) {
console.log(data);
}
});
错误
以下是调用ajax()
函数后我的控制台的样子
仅供参考,如果我点击第二行中的链接,它会将您链接到webservice
并按照第一张图片中的方式运行
注意
如果我在同一个项目中使用相同的webservice
- 域名 - 我可以轻松地ajax()
调用type='json'
并且它完美无误地运行
问题
Webservice
返回JSON
对象而不是XML
如果是,那么答案 0 :(得分:1)
我认为问题是,你在ajax调用中将内容类型指定为json。但是,您的Web服务正在返回xml。
因此,您可以在ajax调用中将内容类型指定为xml并处理xml(我不确定它是否可行),或者您可以配置Web服务以返回json。
请参阅此问题(How to return JSON from a 2.0 asmx web service)以配置Web服务以返回json。
答案 1 :(得分:0)
我认为Rumit只给出了部分答案。您当然需要将Web服务设置为返回JSON而不是XML。
但是,您已经声明要设置dataType: "jsonp"
这要求您在方法调用中返回JSON,方法名称是第二个callback
键的值上面的图片。
jQuery1910366312976758182({data: "Hello World"})
*不完全是,但一步一步,你就会明白......