【发布时间】:2012-12-12 18:32:56
【问题描述】:
我是网络服务的新手。在我的项目中,当我尝试运行时,我连接了 Web Service(一切都是现成的),但出现以下错误。
错误 -->
Uncaught SyntaxError: Unexpected token <
Web 服务和我的页面在同一个解决方案但不同的项目中。
相关代码如下:
jQuery(网址:11761)
function GetAllCategories() {
$.ajax({
url: "http://localhost:12015/myWebService.asmx?op=GetCategories",
type: "POST",
dataType: "jsonp",
data: "{}",
contentType: "application/jsonp; charset=utf-8",
success: function (data) {
var categories = data.d;
$.each(categories, function (index, category) {
alert(category.CategoryId);
});
},
error: function (e) {
alert(e.message);
}
});
}
网络服务(网址:12015)
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<Categories> GetCategories()
{
//Code
}
在这里问之前我已经通过了这个link(看不懂)
编辑:
从这个 post 得到了替代答案。
【问题讨论】:
-
确保最后没有
<</script>标签。 -
这可能是
POST和jsonp的组合,如果没有一些黑客攻击,它们是不兼容的 - 请参阅 stackoverflow.com/questions/2699277/post-data-to-jsonp -
我没有做过任何
asp.net但stackoverflow.com/questions/2380551/… 可能会有所帮助。问题似乎是您使用的是jsonp,它将?callback=?添加到URL 的末尾。 URL 的处理程序(您的 Web 服务)也必须编码为返回 padded 响应,即包装在 JavaScript 函数调用中的响应。我怀疑你只是想对该 URL 执行一个简单的 ajaxGET,它只返回一个简单的 JSON 响应。 -
@Liam ERROR 500,如果我使用
url: "http://localhost:12015/myWebService.asmx/GetCategories"和 ERROR,unexpected token <如果我使用url: "http://localhost:12015/myWebService.asmx?op=GetCategories" -
哇哦!那么,当您运行包含 javascript 的站点时,它的 url 是什么?它是否以localhost:12015 开头?如果不是,您不能这样做,它会破坏安全协议:en.wikipedia.org/wiki/Same_origin_policy。 @andyb 一开始就是这么说的。如果它是同一解决方案中的不同项目,它将是具有不同 url 的不同站点。
标签: jquery asp.net ajax web-services