2015-07-17 3 views
2

Я пытаюсь отправить некоторые данные на сервер express.js. Клиентская сторона - приложение cordova. Я могу успешно опубликовать контент с помощью браузера, но не смог сделать это с помощью приложения cordova. Когда я пытаюсь, я получаю сообщение об ошибке: POST https://192.xx.x.1:8081/test 404 (Not Found). При использовании инспектора устройства Chrome следующих видноНевозможно получить доступ к веб-сервису кросс-домена в Кордове

Request URL:https://192.xx.x.1:8081/test 
Request Method:POST 
Status Code:404 Not Found (from cache) 

Здесь находятся несколько вещей, которые я добавил:

В config.xml

<allow-navigation href="*" /> 

Плагин «Корневой белый список» уже установлен.

В index.html и scan.html страниц, я добавил

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"> 

Я также уверен, что файл содержит AndroidManifest.xml:

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

Вот код для POST-запрос

$.ajax({ 
     type  : "POST", 
     url  : app.url, 
     crossDomain: true, 
     data  : {username : 'asd', password : 'sadsfa'}, 
     dataType : 'json', 
     success : function(response) { 
      $('#result').text("response"); 
     }, 
     error  : function(error) { 
      alert(JSON.stringify(error)); 

     }  }); 

Наконец, я попытался очистить кэш приложения. Ничего не работает. Ни один из запросов не достигает серверной части. Что я упускаю?

+0

app.url - это php-файл? - если это так добавляется в этот файл php (заголовок («Access-Control-Allow-Origin: *»);), и вы не должны получать доступ вопрос. также тестовый файл должен иметь расширение, также как и test.php, поэтому в ajax он должен быть (url: test.php), вероятно, поэтому он не может найти его – Tasos

ответ

0

Вы устанавливаете <access origin="*" /> в свой файл config.xml?

Кроме того, если вы используете jQuery Mobile в качестве интерфейса пользовательского интерфейса, сделайте $.mobile.allowCrossDomainPages = true;, когда вы получите уведомление deviceready.

Смежные вопросы