簡體   English   中英

當使用AT&T數據但不使用WiFi時,PhoneGap Ajax請求返回502(錯誤的網關)

[英]PhoneGap Ajax Request returns 502 (bad gateway) while on AT&T data but not on WiFi

使用PhoneGap制作iOS應用程序,我做的事情非常簡單(向遠程API發出ajax請求)。 在我的物理設備(iPhone 4)上進行測試時,當我使用WiFi發出請求時,一切正常,但是當我通過AT&T數據計划提出請求時,我得到了502錯誤的網關響應(如下)。 我覺得它在PhoneGap連接類中,但是我可能會錯...我知道我的服務器正在正確接收請求,因為它在任一數據連接上的數據庫中都創建了一個實例,只是在AT&T上響應很悶數據。

這是我的AJAX和錯誤參數的打印輸出

$.ajax(
{
  url : 'http://remotehost.com/api/users/login',
  type : 'POST',
  dataType : 'json',
  data : $('#user_login').serializeArray(),
  success : function(result)
  {
  }
});

2011-10-10 00:05:12.983 Emoome[481:707] [INFO] Object:
readyState = 4
setRequestHeader = function (a, b) {t===0&&(l[a.toLowerCase()]=b);return this;}
getAllResponseHeaders = function () {return t===2?m:null;}
getResponseHeader = function (a) {var b;if(t===2){if(!n){n={};while(b=bs.exec(m))n[b[1].toLowerCase()]=b[2]}b=n[a.toLowerCase()]}return b||null;}
abort = function (a) {a=a||"abort",o&&o.abort(a),w(0,a);return this;}
promise = function (a, c) {if(a==null){if(e)return e;e=a={}}c=z.length;while(c--)a[z[c]]=b[z[c]];return a;}
isRejected = function () {return c||b;}
isResolved = function () {return c||b;}
fail = function () {if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this;}
done = function () {if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this;}
then = function (a, c) {b.done(a).fail(c);return this;}
success = function () {if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this;}
error = function () {if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this;}
complete = function () {if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this;}
statusCode = function (a) {if(a){var b;if(t<2)for(b in a)k[b]=[k[b],a[b]];else b=a[v.status],v.then(b,b)}return this;}
responseText = <html><body><h1>502 Bad Gateway</h1>
    The server returned an invalid or incomplete response.
    </body></html>

status = 502
statusText = error

我終於找到了當下的問題。 與AT&T或PhoneGap無關......仍不確定前者是否不負責,因為AT&T處於幕后...問題實際上在我的CodeIgniter REST服務器中-我的應用正在為每次登錄創建新的會話條目請求(ajax POST請求),以及以某種方式通過AT&T連線返回時,我的應用程序確定這是502錯誤,因為它沒有看到Cookie或會話數據。

對於仍然遇到此問題的任何人,我也遇到了問題。 當我從我的應用向服務器發送請求時,我有了setcookie函數。

這正是我所擁有的:setcookie('like'。$ _ POST [qid]。'','1',time()+(60 * 60),“ /”);

一旦我刪除了設置的cookie,一切工作正常。 很奇怪。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM