服务器响应状态为405(方法不允许)
我是Web服务的新用户,当我尝试在Chrome控制台中运行我的页面( 本地 )时出现以下错误
错误
无法加载资源:服务器响应状态为405(方法不允许)
http://localhost:12015/myWebService.asmx?op=GetCategories
这是相关的代码:
jQuery的
$.ajax({ url: "http://localhost:12015/myWebService.asmx?op=GetCategories", type: "POST", ------------ ------------ success: function (data) { var categories = data.d; $.each(categories, function (index, category) { category.CategoryId).text(category.CategoryName); }); }, error: function (e) { //always executing 'error' only alert("hello"); }
网络服务url
http://localhost:12015/myWebService.asmx
[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public List GetCategories() { //code }
页面URL
http://localhost:11761/Default.aspx
编辑:当我刚刚包含dataType: 'jsonp'
时错误消失dataType: 'jsonp'
但是现在还有另一个错误。
未捕获的SyntaxError:意外的令牌<
:12015/myWebService.asmx?op=GetCategories&callback=jQuery183010907560377381742_1356599550427&{}&_=1356599550438:3
当我点击链接(错误中提到的)时,它正在显示页面。 那可能是什么问题? 我不知道错误意味着什么(以及代码的哪一部分显示)。 请帮忙。
有关
Link1 (解释)
Link2 (已解决)
试试这个
[WebMethod] [ScriptMethod(UseHttpPost = true)] public List GetCategories() { //code }
或编辑web.config
... --> ...
请参阅http://codeclimber.net.nz/archive/2006/12/22/How-to-enable-an-ASP.NET-WebService-to-listen-to-HTTP.aspx
将您的内容类型设置为“application / json; charset = utf-8”,如下所示
$(document).ready(function() { $.ajax({ type: "POST", url: "RSSReader.asmx/GetRSSReader", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { // Hide the fake progress indicator graphic. $('#RSSContent').removeClass('loading'); // Insert the returned HTML into the . $('#RSSContent').html(msg.d); } }); });
也参考链接
我在jquery ajax调用之上的朋友的建议上添加了一个简单的行
jQuery.support.cors = true;
现在它工作得很好:)
只在IE浏览器中
我很乐意知道它是否可以使用不同的方式解决,因为不推荐 。
无论如何,经过多次努力后我又问了这个问题,我得到了不同的错误,这篇文章在这里解决了
在我的情况下它失败了因为在servet中没有POST方法,但我有GET方法。
所以我改变了类型:“GET”,所以它现在正在工作。