2015-05-05 20 views
51

phiên bản cordova tôi là 5.0.0PhoneGap Cordova Ajax yêu cầu 404 (Not Found) Lỗi

Tôi nhận được một lỗi 404 cho tất cả các yêu cầu ajax thực hiện khi ứng dụng được triển khai trên thiết bị. Trên trình duyệt web, nó hoạt động tốt nhưng cùng một ứng dụng khi triển khai trên một thiết bị không hoạt động.

Tôi đã thử thêm sau đây để giải quyết sự cố nhưng điều đó đã không hữu ích.

Config.xml

<access origin="*" /> 

AndriodManiest.xml

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

Tôi cũng đã thêm sau trong file index.html của tôi, nhưng nó đã không thực hiện bất kỳ sự khác biệt trong hai.

<script> 
    $.support.cors=true; 
</script> 

Bất cứ ai ở đây có một trick để giải quyết vấn đề này ?, Có vẻ là một vấn đề khá phổ biến với PhoneGap nhưng các bản sửa lỗi nói trên làm việc trong vesion cũ của PhoneGap/cordova nhưng không trong số họ đã làm việc trong trường hợp của tôi.

Mọi trợ giúp đều tuyệt vời.

+0

bạn có thể vui lòng cung cấp url không? –

+1

Rất tiếc, tôi không thể đăng URL chính xác nhưng tôi đã xác minh URL và đó là URL hợp lệ. Nó có định dạng này - http://www.myserver.co.uk/appname/index.php/api/getplanners – Sahil

Trả lời

101

tôi đã cùng một vấn đề và phải cài đặt cordova-plugin-whitelist

cordova plugin add cordova-plugin-whitelist 

tín dụng đi vào stackoverflow bài viết này - Ajax Command to request URL no longer working

+8

Rất cám ơn. Tôi có thể xác nhận rằng việc thêm plugin này làm việc ajax. Những người khác đến đây để giải pháp chắc chắn rằng bạn cập nhật cho bạn config.xml và thêm điều này: Sahil

+2

Tôi đã phải sử dụng 'cordova plugin add https: // github.com/apache/cordova-plugin-whitelist.git' để cài đặt nó. – kentrh

+1

Một điều: Không tìm thấy thẻ meta Chính sách bảo mật-nội dung. Vui lòng thêm một thẻ khi sử dụng plugin cordova-plugin-whitelist. –

15

Nó thực sự nên thêm các plugin whitelist cordova:

cordova plugin add cordova-plugin-whitelist 

hoặc trong tệp config.xml của bạn:

<plugin name="cordova-plugin-whitelist" spec="1" /> 

nhưng nếu bạn đang sử dụng dịch vụ xây dựng dịch vụ điện thoại trực tuyến thì cú pháp là khác nhau. Bạn phải thêm dòng sau trong file config.xml của bạn:

<gap:plugin name="cordova-plugin-whitelist" source="npm" /> 

và ủy quyền yêu cầu tên miền chéo:

<access origin="*" /> 
<allow-intent href="*" /> 
<allow-navigation href="*" /> 

này không được khuyến khích bởi vì một ký tự đại diện được sử dụng ở khắp mọi nơi và mọi thứ được cho phép. Nhưng nó là hoàn hảo cho các bài kiểm tra của bạn.

1

Điều này phù hợp với tôi. Sự khác biệt duy nhất là trong config.xml của tôi, tôi đã phải đặt nó vào một nút để nó có hiệu lực.

Ví dụ của tôi dưới đây:

<platform name="android"> 
    <allow-intent href="market:*" /> 
    <access origin="*" /> 
    <allow-intent href="*" /> 
    <allow-navigation href="*" /> 
</platform> 
+0

tính năng này đang sử dụng plugin? hoặc vainilla cordova? –

+0

nó là vani .. – SeanBarberPro

0

PhoneGap tài khoản. Thêm dòng này vào config.xml là giải pháp cho tôi:

<gap:plugin name="cordova-plugin-whitelist" source="npm" /> 
Các vấn đề liên quan