繁体   English   中英

在JavaScript中使用RESTful服务

[英]Comsuming RESTful service in javascript

我正在尝试使用位于以下位置的新设置的RESTful WCF服务

[http://196.34.92.60/api/api/v1/public.svc/getoperators]

我使用一些第三方工具访问了该工具,这些工具是我从中获取的

http://code.google.com/a/eclipselabs.org/p/restclient-tool/

https://addons.mozilla.org/zh-CN/firefox/addon/restclient/

和我的结果看起来像我预期的那样:

{
   "Results":
   [
       "golden arrow",
       "jammie",
       "myciti"
   ]
}

一切都很好。 当我在网络浏览器中键入url时,响应为

<ResultList xmlns="http://schemas.datacontract.org/2004/07/Developer_Portal"xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Results xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:string>golden arrow</a:string><a:string>jammie</a:string><a:string>myciti</a:string></Results></ResultList>

不是我所期望的,但是我认为这是正常的,并尝试使用Javascript服务(这里是小提琴)

http://jsfiddle.net/JmTe4/11/

它以错误响应。 在这一点上,我很困惑:我需要做些什么才能在javascript中获得所需的响应?

几件事。 其中一些成员已经被其他成员提及。

  1. 通过XMLHttpRequest进行的AJAX调用无法跨域使用。 换句话说,您的AJAX代码无法从jsfiddle.net调用196.34.92.60。 它们是不同的域。
  2. 您的浏览器正在返回XML,因为它发送的是“ Accepts:text \\ html”作为标题。 jQuery将解决此问题,因为它在请求中使用application \\ json(除非另行指定)。

因此,问题2已解决。 可以使用JSONP解决问题1。 您只需要添加?callback =? 到您的网址末尾。 但是,请通读jQuery网站上的文档以获取完整概述。

转到此URL并在页面上搜索“ JSONP” http://api.jquery.com/jQuery.getJSON/

问题出在服务器的webconfig中。 我必须添加

<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />

感谢您的建议,他们可能解决了我可能遇到的其他一些问题。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM