我正在研究 asp.net AJAX 服务,其中一种方法是“更新数据库”。
当我在本地 IIS 上测试网站时没有出现问题。但是当我上传到公共 IIS 时,XMLHttpRequest 总是返回 400 错误。
谁能帮我解释一下为什么会出现这个问题?我应该怎么做才能解决它?如果我的问题不够清楚,请告诉我。
这是我调用服务的代码预览,
var objFaq = {
config : {
isPostBack : false,
async:false,
cache:false,
type :'POST',
contentType:"application/json; charset=utf-8",
data:'{}',
dataType :'json',
method:'',
url:'',
categoryList:"",
ajaxCallMode:0,
arr:[],
arrModule:[] ,
baseURL: 'http://www.mywebsite.com/Service/FaqService.asmx/'
},
ajaxCallProduct: function(config) {
$.ajax({
type: objFaq.config.type,
contentType: objFaq.config.contentType,
cache: objFaq.config.cache,
async: objFaq.config.async,
url: objFaq.config.url,
data: objFaq.config.data,
dataType: objFaq.config.dataType,
success: objFaq.ajaxSuccess,
error: objFaq.ajaxFailure
});
},
likeQuestion:function(id)
{
try
{
this.config.method="Like";
this.config.url=objFaq.config.baseURL + this.config.method;
this.config.data = JSON2.stringify({id:id});
this.config.ajaxCallMode=1;
this.ajaxCallProduct(this.config);
}
catch(e)
{
alert(e.message);
}
},
dislikeQuestion:function(id)
{
try
{
this.config.method="Dislike";
this.config.url=objFaq.config.baseURL + this.config.method;
this.config.data = JSON2.stringify({id:id});
this.config.ajaxCallMode=1;
this.ajaxCallProduct(this.config);
}
catch(e)
{
alert(e.message);
}
},
ajaxSuccess: function(data) {
switch (objFaq.config.ajaxCallMode) {
case 0:
break;
case 1:
//alert('sukes');
break;
}
},
ajaxFailure: function(xhr, status, errorThrown) {
switch(xhr.status)
{
case 400:
alert('400' + xhr.responseText);
break;
default:
alert(xhr.status);
break;
break;
}
}
};