我在两周前继承了一些代码,它使用jquery.ajax方法连接到.NET Web服务。这段代码给我带来了麻烦...
if (MSCTour.AppSettings.OFFLINE !== 'TRUE') {
$.ajax({
url: url,
data: json,
type: "POST",
contentType: "application/json",
timeout: 10000,
dataType: "json", // not "json" we'll parse
success: function(res){
if (!callback) {
return;
}
/*
// *** Use json library so we can fix up MS AJAX dates
*/
var result = "";
if (res !== "") {
try {
result = $.evalJSON(res);
}
catch (e) {
result = {};
bare = true;
}
}
/*
// *** Bare message IS result
*/
if (bare) {
callback(result);
return;
}
/*
// *** Wrapped message contains top level object node
// *** strip it off
*/
for (var property in result) {
callback(result[property]);
break;
}
},
error: function(xhr,status,error){
if (status === 'parsererror') {}
else {return error;}
},
complete: function(res, status){
if (callback) {
if ((status != 'success' && status != 'error') || status === 'parsererror' || (status === 'timeout' && res !== '')) {
try {
result = $.secureEvalJSON(res);
}
catch (e) {
result = {};
bare = true;
}
callback(res);
}
}
return;
}
});
}
此时的url变量等于/testsite/service.svc/GetItems
现在我的问题在于......
当通过visual studio运行此站点退出调试模式时,通过Web服务连接到数据库并查看我的所有数据都没有任何问题,无论是查看还是更新。当我浏览同一站点的普通Web服务器时,在同一页面上,没有数据显示。当我在firebug上面的代码的错误部分中断时,这是我在下面链接的图像中获得的信息。
我得到的似乎是404错误,但是当我在服务器上查看所有文件都在正确的位置时......再加上它在调试模式下工作的事实,我想我很慢疯狂地盯着这些相同的代码行试图找到大海捞针。任何帮助或只是一个方向,将非常感激。
答案 0 :(得分:0)
打开web.config并添加或确保以下内容:
<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
</webServices>