【问题标题】:Ajax not invoking service method through phonegapAjax 不通过 phonegap 调用服务方法
【发布时间】:2014-11-20 17:54:26
【问题描述】:

我有 ajax 调用:

$.ajax({
        type: "POST",
        url: "http://localhost:95/MobileEcomm/Service1.svc/validateLogin",
        crossDomain: true,
        data:{ 'EmailID':EmailID, 'Password':Password},
        success: function (data) {
        alert(data);
            // do something with server response data
        },
        error: function (err) {
            // handle your error logic here
            alert("Error");
        }
    });

我想调用:

[WebInvoke(
  Method = "POST",
  BodyStyle = WebMessageBodyStyle.Wrapped,
  ResponseFormat = WebMessageFormat.Json,
  RequestFormat = WebMessageFormat.Json,
  UriTemplate = "validateLogin/{Email}/{Password}")]
        [OperationContract]
        string validateLogin(string Email, string Password);

但我总是进入 ajax 的错误块。

我的 ajax 调用有什么错误?

错误1:

错误 2:

【问题讨论】:

  • 你确定 phonegap 应用可以访问你的 localhost:95 服务器吗?
  • 是的,它的纯 html 代码 @VsevolodGoloviznin
  • @CuteChild 我的意思是通常无法通过网络访问 localhost 环境
  • @VsevolodGoloviznin 我在 IIS 中托管了服务
  • @EhsanSajjad 我发布了错误

标签: javascript c# jquery .net ajax


【解决方案1】:

1) 当应用程序在file:// 协议上运行其部分或全部文件时,会出现许多难以捕获的错误。建议完全在http:// 上调试您的应用程序。如果所有带有file:// 协议的 URI 都与 Ripple 模拟器相关,请参见下一点。

2) 有一个名为Same-origin policy (CORS) 的限制。由于您的应用似乎在 localhost:58889 上运行并且被调用的服务器位于 localhost:95 上,因此这两个服务器被视为不同服务器。 Ripple 模拟器有某种代理来绕过 CORS,尝试打开它。我过去也成功地使用了this Chrome extension 和 Ripple 模拟器。

注意:Status: FailedType: Pending 不属于 contentType 不匹配,但 99% 是 CORS 问题。

【讨论】:

  • Chrome 开发者工具窗口标题。它是您应用的服务器或 Ripple 的服务器,两者都有答案。
【解决方案2】:

请尝试将 contentType 添加到您的通话中

$.ajax({
        type: "POST",
        url: "http://localhost:95/MobileEcomm/Service1.svc/validateLogin",
        crossDomain: true,
        contentType: 'application/json',
        data:{ 'EmailID':EmailID, 'Password':Password},
        success: function (data) {
        alert(data);
            // do something with server response data
        },
        error: function (err) {
            // handle your error logic here
            alert("Error");
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    相关资源
    最近更新 更多