2011-12-09 29 views
19

Tôi đang phát triển ứng dụng PhoneGap trong Xcode giao tiếp với máy chủ bằng cách sử dụng api trên web. Api chấp nhận các yêu cầu http tiêu chuẩn. Là một phần của quá trình xác thực người dùng, cookie được đặt được truyền theo tiêu đề http với mỗi yêu cầu tiếp theo tới api.Lưu trữ và gửi cookie http không hoạt động trong ứng dụng PhoneGap

Trong cuộc gọi đăng nhập vào api, tôi có thể thấy rõ ràng rằng cookie đang được gửi trở lại như một phần của tiêu đề phản hồi. Tuy nhiên, nó dường như không được lưu trữ, cũng không được gửi trong tiêu đề yêu cầu http với mỗi cuộc gọi api mới.

Để thực hiện cuộc gọi đến api, tôi đang sử dụng cuộc gọi $.getJSON của jQuery.

tôi tìm thấy những câu dưới đây và trả lời: phonegap: cookie based authentication (PHP) not working [webview]

Câu trả lời ở trên gợi ý thiết lập các NSHTTPCookieStorage cookieAcceptPolicy để NSHTTPCookieAcceptPolicyAlways trong ứng dụng đại biểu của init. Tôi đã thử điều đó và dường như không giải quyết được vấn đề. Ngoài ra, theo số Apple's documentation, mặc định cookieAcceptPolicyNSHTTPCookieAcceptPolicyAlways.

Đề xuất về cách lưu trữ cookie và gửi tác phẩm được đánh giá cao.

+2

Tôi sử dụng chính xác điều đó trong các ứng dụng của mình và nó hoạt động tốt trên iPhone/iPad ... – Leon

+0

Bạn đã xem qua chủ đề này chưa? http://stackoverflow.com/questions/4262636/can-jquery-getjson-put-a-domains-cookies-in-the-header-of-the-request-it-makes – sleepwalker

+0

Tôi đã thấy các chủ đề tương tự, tuy nhiên, như tôi hiểu, PhoneGap có thể thực hiện những điều này ... "Điều này có nghĩa là bạn có thể yêu cầu các điểm kết thúc api mà bạn thường không thể truy cập nếu điều này có nghĩa là được triển khai cho cài đặt máy tính để bàn". http://wiki.phonegap.com/w/page/42450600/PhoneGap%20Ajax%20Sample –

Trả lời

2

CookieStorage phải và lưu cookie, được sử dụng cho các yêu cầu tiếp theo. thậm chí nó tự động thêm chúng nếu bạn sử dụng, ví dụ, NSURLRequest ... nhưng chỉ khi nó cho cùng một tên miền được đặt trên cookie.

Tôi đã chạy vào vấn đề tương tự nhiều lần trước đây,

nguyên nhân có thể có thể là:

1) cookie có một tên miền khác rằng những gì bạn đang gửi theo yêu cầu, có thể do một chuyển hướng ... ví dụ: nếu yêu cầu được gửi đến http://www.somesite.com, thực tế chuyển hướng đến http://somesite.com (và đó là tên miền thực, cookie sẽ được lưu cho url/tên miền sometime.com và bây giờ www.somesite.com

2) có thể tiêu đề "chỉ phiên" và "ngày hết hạn" được đặt không chính xác vào ngày thứ cookie điện tử, khiến cho bộ nhớ cookie loại bỏ chúng

hy vọng điều này sẽ giúp, biết từ việc lưu trữ cookie kinh nghiệm đôi khi có thể gây phiền toái.

Các vấn đề liên quan