ajax调用中的inernal错误服务器500? [英] inernal error server 500 in ajax call ?

查看:105
本文介绍了ajax调用中的inernal错误服务器500?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过方法调用我的动作.asmx



i called my action .asmx by method

ajaxCall: function (serverMethod, params, successHandler) {
       var csrfToken = $("input[name='__RequestVerificationToken']").val();
       //alert('csrfToken= ' + csrfToken);

       $.ajax({
           headers: { __RequestVerificationToken: csrfToken },
           cache: false,
           async: false,
           type: "POST",
           url: "Server/services/Actions.asmx/" + serverMethod + "?sid=" + app.sessionId,
           data: params,
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           dataFilter: function (data) {
               var msg;

               if (typeof (JSON) !== 'undefined' && typeof (JSON.parse) === 'function')
                   msg = JSON.parse(data);
               else
                   msg = eval('(' + data + ')');

               if (msg.hasOwnProperty('d'))
                   return msg.d;
               else
                   return msg;
           },
           success: function (response) {

               if (!response) {
                   datacontext.log(response.statusText, response, this, 'error1');
               }

               successHandler(response);
               var j = response;
               //for (var i = 0; i < j.length; i++) {
               //    successHandler(j[i]);
               //}
           },
           error: function (xhr) {
               datacontext.log(xhr.statusText, xhr, this, 'error');
           }
       });
   },



当我在vs2012中调试我的项目(单页面应用程序)时它运行良好

,即使我在我的本地iis在我的电脑上的网站

但当我在ismote服务器上的iis上我的网站时,我在调用ajaxcall方法时获得了内部服务器错误500

当我输入的网址时asmx(www.mysite.com/Server/services/Actions.asmx/GetNewsCount?sid=1)



i在浏览器上收到此回复


$ b






it works well when i debug my project (Single Page Application) in vs2012
,even when i puplish my site on local iis in my pc
but when i puplish my website on iis on aremote server i got internal server error 500 when call ajaxcall method
and when i typed url of asmx (www.mysite.com/Server/services/Actions.asmx/GetNewsCount?sid=1)

i got this response on the browser




System.NotSupportedException: The type System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] is not supported because it implements IDictionary.
   at System.Xml.Serialization.TypeScope.GetDefaultIndexer(Type type, String memberInfo)
   at System.Xml.Serialization.TypeScope.ImportTypeDesc(Type type, MemberInfo memberInfo, Boolean directReference)
   at System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo source, Boolean directReference, Boolean throwOnError)
   at System.Xml.Serialization.ModelScope.GetTypeModel(Type type, Boolean directReference)
   at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace)
   at System.Web.Services.Protocols.XmlReturn.GetInitializers(LogicalMethodInfo[] methodInfos)
   at System.Web.Services.Protocols.XmlReturnWriter.GetInitializers(LogicalMethodInfo[] methodInfos)
   at System.Web.Services.Protocols.MimeFormatter.GetInitializers(Type type, LogicalMethodInfo[] methodInfos)
   at System.Web.Services.Protocols.HttpServerType..ctor(Type type)
   at System.Web.Services.Protocols.HttpServerProtocol.Initialize()
   at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)



请知道如何解决这个问题吗?


please any one know how to solve this ?

推荐答案

input [name ='__ RequestVerificationToken'])。val();
// alert('csrfToken ='+ csrfToken);
("input[name='__RequestVerificationToken']").val(); //alert('csrfToken= ' + csrfToken);


.ajax({
headers:{__ RequestVerificationToken:csrfToken},
cache: false
async false
类型: POST
url: 服务器/ services / Actions.asmx / + serverMethod + ?sid = + app。 sessionId,
data: params
contentType: application / json; charset = utf-8
dataType: JSON
dataFilter:function(data){
var msg;

if typeof (JSON)!== ' undefined'&& typeof (JSON.parse) === ' function'
msg = JSON.parse(data);
else
msg = eval(' (' + data + ' )');

if (msg.hasOwnProperty(' d'))
return msg.d;
else
return msg;
},
成功:函数(响应){

if (!response){
datacontext .log(response.statusText,response, this ' ERROR1' );
}

successHandler(回复);
var j = response;
// for(var i = 0; i< j.length; i ++){
// successHandler(j [i]);
// }
},
错误:function(xhr){
datacontext .log(xhr.statusText,xhr,' 错误);
}
});
},
.ajax({ headers: { __RequestVerificationToken: csrfToken }, cache: false, async: false, type: "POST", url: "Server/services/Actions.asmx/" + serverMethod + "?sid=" + app.sessionId, data: params, contentType: "application/json; charset=utf-8", dataType: "json", dataFilter: function (data) { var msg; if (typeof (JSON) !== 'undefined' && typeof (JSON.parse) === 'function') msg = JSON.parse(data); else msg = eval('(' + data + ')'); if (msg.hasOwnProperty('d')) return msg.d; else return msg; }, success: function (response) { if (!response) { datacontext.log(response.statusText, response, this, 'error1'); } successHandler(response); var j = response; //for (var i = 0; i < j.length; i++) { // successHandler(j[i]); //} }, error: function (xhr) { datacontext.log(xhr.statusText, xhr, this, 'error'); } }); },



当我在vs2012中调试我的项目(单页面应用程序)时它运行良好

,即使我在我的本地iis在我的电脑上的网站

但当我在ismote服务器上的iis上我的网站时,我在调用ajaxcall方法时获得了内部服务器错误500

当我输入的网址时asmx(www.mysite.com/Server/services/Actions.asmx/GetNewsCount?sid=1)



i在浏览器上收到此回复


$ b






it works well when i debug my project (Single Page Application) in vs2012
,even when i puplish my site on local iis in my pc
but when i puplish my website on iis on aremote server i got internal server error 500 when call ajaxcall method
and when i typed url of asmx (www.mysite.com/Server/services/Actions.asmx/GetNewsCount?sid=1)

i got this response on the browser




System.NotSupportedException: The type System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] is not supported because it implements IDictionary.
   at System.Xml.Serialization.TypeScope.GetDefaultIndexer(Type type, String memberInfo)
   at System.Xml.Serialization.TypeScope.ImportTypeDesc(Type type, MemberInfo memberInfo, Boolean directReference)
   at System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo source, Boolean directReference, Boolean throwOnError)
   at System.Xml.Serialization.ModelScope.GetTypeModel(Type type, Boolean directReference)
   at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace)
   at System.Web.Services.Protocols.XmlReturn.GetInitializers(LogicalMethodInfo[] methodInfos)
   at System.Web.Services.Protocols.XmlReturnWriter.GetInitializers(LogicalMethodInfo[] methodInfos)
   at System.Web.Services.Protocols.MimeFormatter.GetInitializers(Type type, LogicalMethodInfo[] methodInfos)
   at System.Web.Services.Protocols.HttpServerType..ctor(Type type)
   at System.Web.Services.Protocols.HttpServerProtocol.Initialize()
   at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)



请知道如何解决这个问题?


please any one know how to solve this ?


这篇关于ajax调用中的inernal错误服务器500?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆