繁体   English   中英

.Ajax方法可在本地计算机上使用,但不能在服务器上使用

[英].Ajax method works on local machine, but not on server

我有一个.Ajax方法,该方法在后面的页面上调用一个方法(执行一些逻辑,然后调用WCF服务,然后返回一个对象),如下所示:

$.ajax({
            type: 'POST',
            url: 'MyPage.aspx/TestMethod',
            dataType: "json",
            contentType: "application/json",
            data: "{'Id': '" + Id + "'}",
            success: function (data) {
                $("#randomElement").html(data.d.Foo);
            },
            error: function ((xhr, textStatus, error){
            alert(xhr.statusText);
            alert(textStatus);
            alert(error);

        });

和后面的页面:

  [System.Web.Services.WebMethod]
        public static MyObject TestMethod(string Id)
        {
            //Logic removed for readability!

            return MyService.GetStuff(Id);

        }

这在我的本地计算机上可以很好地工作,但是当我部署到服务器时却无法工作。

我确定没有调用方法后面的页面(即,错误在于调用TestMethod()而不是调用服务的TestMethod())。

我还在.ajax方法之前放置了一个警报,以向我显示我所在页面的路径,以防万一它对实时服务器上的uri做一些有趣的事情,并以“ /MyPage.aspx”形式返回我希望。

我还将“ url:”更改为完整的uri,以查看是否有帮助,但没有帮助。


在关闭自定义错误的情况下运行提琴手后,出现以下错误:

在System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo方法,Object target,Object []参数,SignatureStruct&sig,MethodAttributes methodAttributes,RuntimeType typeOwner)\\ r \\ n处的{“ Message”:“线程正在中止。”,“ StackTrace”:“ System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo方法,对象目标,Object []参数,签名sig,MethodAttributes methodAttributes,RuntimeType typeOwner)在System.Reflection.RuntimeMethodInfo.Invoke(对象obj,BindingFlags invokeAttr,活页夹活页夹,对象[ ]参数,CultureInfo文化,System.Reflection.RuntimeMethodInfo.Invoke(对象obj,BindingFlags invokeAttr,活页夹活页夹,Object []参数,CultureInfo文化)在System.Web.Script处的布尔型skipVisibilityChecks)\\ r \\ n。 Services.WebServiceMethodData.CallMethod(对象目标,IDictionary 2 parameters)\\r\\n at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary 2个参数)\\ r \\ n在System.Web.Script处。 Services.RestHandler.InvokeMethod(HttpContext上下文,WebServiceMethodData methodData,IDictionary`2 rawParams)\\ r \\ n位于System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext上下文,WebServiceMethodData methodData)“,” ExceptionType“:” System.Threading .ThreadAbortException“}

您的JSON无效; 您需要使用双引号:

data: '{"Id": "' + Id + '"}',

在我看来,它没有在您的方法中发布正确的参数。

我从未像以前一样在.ajax方法中使用data选项。 我用:

data: {Id: myId},

其中myId是保存要传递的Id值的变量-不带引号。

\\ r \\ n通常是与编码字符串有关的东西,在这里这不应该与之相关,并且似乎您正在传递字符串数据:“ {'Id':'” + Id +“'}”代替一个对象。

您的服务器是否有“ json”? 例如,godaddy不提供

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM