2013-12-16 78 views
0

我已經將我的phonegap項目複製到類固醇,但現在我的ajax命令無法正常工作,我不知道是什麼導致它,所以任何建議可能是有用的。appgyver類固醇AJAX命令

這是導致該問題的代碼,它總是與terinates request.status錯誤= 0:

$.ajax({ 
     type: "POST", 
     url: serverUrl + "login.ajax", 
     data: { jsonLogin: JSON.stringify(loginObject), deviceInfo: JSON.stringify(deviceInfo)}, 
     async: true, 
     timeout: 7000, 
     cache: false, 
     headers: { "cache-control": "no-cache" }, 
     success: function(data) { 
        ... 
       }, 
     error: function(request, status, err) { 
      ... 
     }, 
     complete: function(){...} 
    });  

回答

1

AppGyver員工在這裏!

config/application.coffee,您的steroids.config.location = "http://localhost/index.html"或只是index.html?類固醇通過本地主機(即電話上的內部網絡服務器)提供應用程序文件,而PhoneGap使用文件協議。使用本地主機使得WebView強制執行更嚴格的CORS規則,所以您需要一個Access-Control-Allow-Origin標頭到服務器響應。通過文件協議提供的HTML文件可讓跨域請求在沒有CORS頭的情況下通過。

您可以通過AJAX測試找到一個測試項目https://github.com/appgyver/steroids-runtime-tests

0

我想因爲...億郵沒有指定dataType

jQuery的不解析JSON數據
$.ajax({ 
      type: "POST", 
      url: serverUrl + "login.ajax", 
      data: { jsonLogin: JSON.stringify(loginObject), deviceInfo: JSON.stringify(deviceInfo)}, 
      dataType: json, //Specify data type 
      async: true, 
      timeout: 7000, 
      cache: false, 
      headers: { "cache-control": "no-cache" }, 
      success: function(data) { 
         ... 
        }, 
      error: function(request, status, err) { 
       ... 
      }, 
      complete: function(){...} 
     }); 
相關問題