我试图通过example.com上的网站otherite.com调用网络服务。
Othersite.com上的代码:
$.ajax({
type: "GET",
url: "http://www.example.com/api/searchcityandcountry/?q=" + cityval + '&cid=1',
data: "",
cache:true,
dataType: "jsonp",//used to be json
crossDomain: true,
jsonpCallback: 'callback',
success: function (data) {}
});
但是当进行此调用时,我在开发控制台中看到以下错误:
Uncaught SyntaxError:意外的令牌:
查看实际调用它已成为: http://www.example.com/api/searchcityandcountry/?q=bost&cid=1&callback=callback:1
如果我直接在浏览器地址栏中输入该URL,则会给出正确的响应。
此外,如果我查看“网络”选项卡,我会看到此请求?q=bost&cid=1&callback=callback
(因此没有:1
),它返回HTTP状态代码200
为什么会附加:1
,如何删除它以使此跨域调用有效?
我的WCF网络服务签名:
<OperationContract()> _
<Web.WebInvoke(Method:="GET", ResponseFormat:=Web.WebMessageFormat.Json, BodyStyle:=Web.WebMessageBodyStyle.Bare, _
UriTemplate:="searchcityandcountry/?q={q}&cid={cid}")> _
Function searchCityAndCountry(ByVal q As String, ByVal cid As Integer) As Stream
我将此代码基于我在此处找到的内容: