弄清了您违反了相同来源策略的原因,因为站点和Web服务正在两个不同的项目中运行。
将 Web服务和网站移到同一项目中 ,它应该可以工作。
另外你的Javascript是错误的,应该是
function GetAllCategories() { $.ajax({ url: "http://localhost:12015/myWebService.asmx/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); } });}
op位仅用于在Web浏览器中进行测试。删除它,你应该很好。
PS @andyb公平地说,不久前提出了这个答案,但尚不清楚这是问题所在! 更新
今天在此方面做得有点麻烦,我已经澄清了一些我想分享的观点。您必须
POST获得
.asmx服务,并且无法跨域进行此 *** 作。您可以
GET跨域触发,但不能跨域触发,
POST因此我认为这是路由问题。
您可以启用
GET,请参阅如何通过GET调用ASMX
Web服务?。但这似乎是一个坏主意,因为它将使您的Web服务泛滥成灾!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)