[英]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.