我是网络服务的新用户,当我尝试在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");
}
网络服务网址
http://localhost:12015/myWebService.asmx
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<Categories> GetCategories()
{
//code
}
网页网址
http://localhost:11761/Default.aspx
编辑:当我刚刚包含dataType: 'jsonp'
时错误消失但现在又出现了另一个错误。
未捕获的SyntaxError:意外的令牌&lt;
:12015/myWebService.asmx?op=GetCategories&callback=jQuery183010907560377381742_1356599550427&{}&_=1356599550438:3
当我点击链接(错误中提到的)时,它正在显示页面。那可能是什么问题?我不知道错误意味着什么(以及代码的哪一部分显示)。请帮忙。
相关
答案 0 :(得分:3)
试试这个
[WebMethod]
[ScriptMethod(UseHttpPost = true)]
public List<Categories> GetCategories()
{
//code
}
或修改web.config
<system.web>
...
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/> -->
<add name="HttpGet"/>
<add name="Documentation"/>
<add name="HttpPostLocalhost"/>
</protocols>
</webServices>
...
</system.web>
答案 1 :(得分:3)
将您的内容类型设为“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 <div>.
$('#RSSContent').html(msg.d);
}
});
});
也请参考link
答案 2 :(得分:2)
我在jquery ajax调用
上方的朋友的建议上添加了一个简单的行 jQuery.support.cors = true;
现在工作正常:)
仅限 IE 浏览器
我很高兴知道它是否可以使用不同的方式解决,因为它不是recommended。
无论如何,经过多次努力后我再次提出这个问题,我得到了不同的错误,这篇错误已在本文中解决here
答案 3 :(得分:1)
在我的情况下它失败了因为在servet中没有POST方法,但我有GET方法。
所以我改变了类型:&#34; GET&#34;,所以它现在正在运作。
答案 4 :(得分:0)
添加允许访问服务器端的所有原始源