Jquery 通过AJAX调用的WCF服务没有响应
我知道这个问题已经被问过很多次了,但我还没有找到任何解决我这个问题的方法 我有一个使用webHttpBinding的WCF web服务,我正试图通过jquery$.ajax()调用从网页调用该服务 运行时,会触发成功警报,但消息为空 使用FireBug,我可以看到响应完全为空,而使用HttpFox时,返回错误NS\u error\u DOM\u BAD\u URI。我看不出这是一个跨浏览器的问题,因为我将使用localhost,并且服务也在同一台机器上运行(我甚至尝试将localhost更改为机器名,但没有成功) 服务就是这样定义的Jquery 通过AJAX调用的WCF服务没有响应,jquery,ajax,wcf,response,Jquery,Ajax,Wcf,Response,我知道这个问题已经被问过很多次了,但我还没有找到任何解决我这个问题的方法 我有一个使用webHttpBinding的WCF web服务,我正试图通过jquery$.ajax()调用从网页调用该服务 运行时,会触发成功警报,但消息为空 使用FireBug,我可以看到响应完全为空,而使用HttpFox时,返回错误NS\u error\u DOM\u BAD\u URI。我看不出这是一个跨浏览器的问题,因为我将使用localhost,并且服务也在同一台机器上运行(我甚至尝试将localhost更改为机
<OperationContract(), DataContractFormat()>
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped, Method:="GET", ResponseFormat:=WebMessageFormat.Json)> _
Function bob() As String
任何帮助都将不胜感激——我真的开始发疯了
编辑:
现在有趣的是,如果我将url粘贴到浏览器地址栏中,就会启动一个下载,其中包含json格式的服务方法的结果
谢谢
John您请求中的数据很可能是问题所在:
- WCF函数不需要任何输入数据
- 由于您传递一个字符串作为数据(它看起来像一个空的JSON对象,但实际上是一个字符串),jQuery会像这样将它附加到URL:
但这是一个无效的URL,IIS将拒绝它http://localhost/KasraNet.Services.Centurian.WebService/CenturianAdmin.svc/bob?{}
- WCF函数不需要任何输入数据
- 由于您传递一个字符串作为数据(它看起来像一个空的JSON对象,但实际上是一个字符串),jQuery会像这样将它附加到URL:
但这是一个无效的URL,IIS将拒绝它http://localhost/KasraNet.Services.Centurian.WebService/CenturianAdmin.svc/bob?{}
- 您请求中的数据很可能是问题所在:
- 好吧,我的脑袋有点麻木
我开始考虑跨域问题,意识到我是在打开文件的直接链接,而不是通过IIS
创建一个VD并通过它打开页面,我期待的结果回来了
感谢您抽出时间来研究这个问题,也很抱歉浪费您的时间。好的,我有点麻木 我开始考虑跨域问题,意识到我是在打开文件的直接链接,而不是通过IIS 创建一个VD并通过它打开页面,我期待的结果回来了
感谢您抽出时间研究此问题,并为浪费您的时间表示歉意。此服务是否托管在端口80上?如果不是,这仍然是一个同源策略违反。请原谅我的无知,但我如何找到它,如果需要,如何更改它?因为它通过在浏览器的地址栏中键入相同的地址来工作,这不是端口问题。您可能想尝试$.get(您的URL,函数(数据){alert(“msg=“+data”);}),看看是否有效。您对.ajax的附加选项可能会影响某些事情。不幸的是,同样的错误。来自HttpFox的数据是00:00:04.299 0.094 417 206 GET 200 application/json(NS\u ERROR\u DOM\u BAD\u URI)。该错误通常发生在跨域问题时;你能告诉我你用来访问网站本身的url吗?服务是否托管在端口80上?如果不是,这仍然是一个同源策略违反。请原谅我的无知,但我如何找到它,如果需要,如何更改它?因为它通过在浏览器的地址栏中键入相同的地址来工作,这不是端口问题。您可能想尝试$.get(您的URL,函数(数据){alert(“msg=“+data”);}),看看是否有效。您对.ajax的附加选项可能会影响某些事情。不幸的是,同样的错误。来自HttpFox的数据是00:00:04.299 0.094 417 206 GET 200 application/json(NS\u ERROR\u DOM\u BAD\u URI)。该错误通常发生在跨域问题时;你能告诉我你用来访问网站本身的url吗?我在没有输入数据的情况下尝试过这个方法,我也在一个需要数据的方法上尝试过。不幸的是,同样的问题。我在没有输入数据的情况下尝试过这个方法,我也在一个需要数据的方法上尝试过。不幸的是,同样的问题。
<OperationContract(), DataContractFormat()>
<WebInvoke(BodyStyle:=WebMessageBodyStyle.Wrapped, Method:="GET", ResponseFormat:=WebMessageFormat.Json)> _
Function bob() As String
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 (.NET CLR 3.5.30729)
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Origin: null
Server: Microsoft-IIS/5.1
Date: Fri, 13 May 2011 14:20:53 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Content-Length: 19
Cache-Control: private
Content-Type: application/json; charset=utf-8