Кордова не может получить доступ к AJAX - PullRequest
0 голосов
/ 25 февраля 2019

Я использую платформу Browser от Cordova, также я использую теги cordova-plugin-whitelist и Content-Security-Policy в моих HTML-кодах.но я получаю ниже ошибку в консоли:

JQMIGRATE: Migrate is installed, version 3.0.0 
adding proxy for Device 
SEC7118: XMLHttpRequest for http://app.jpcomplex.com/appserver/?ios=1&username=&devid=1551073647241314 required Cross Origin Resource Sharing (CORS). 
index.html
SEC7120: Origin http://localhost:8000 not found in Access-Control-Allow-Origin header. 
index.html
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
index.html

вот мой config.xml:

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.hellocordova" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>HelloCordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="dev@cordova.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <access origin="*" />
    <allow-navigation href="http://app.jpcomplex.com/*" />
    <allow-navigation href="*" />
    <allow-navigation href="http://*/*" />
    <allow-navigation href="https://*/*" />
    <allow-navigation href="data:*" />
    <allow-intent href="http://app.jpcomplex.com/*" />
    <allow-intent href="*" />
    <plugin name="cordova-plugin-x-toast" spec="^2.7.2" />
    <plugin name="cordova-plugin-dialogs" spec="^2.0.1" />
    <plugin name="cordova-plugin-nativestorage" spec="^2.3.2" />
    <plugin name="cordova-plugin-device" spec="^2.0.2" />
    <plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
    <engine name="browser" spec="^5.0.4" />
    <engine name="android" spec="^7.1.4" />
    <engine name="ios" spec="^4.5.5" />
</widget>

и вот метатег:

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

иВот мой запрос AJAX:

$.get("http://app.jpcomplex.com/appserver/",{ios:1,username:'test'},function(data){
    alert(data);
});

Как я могу это исправить?

1 Ответ

0 голосов
/ 25 февраля 2019

Мой мета-CSP

<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:; connect-src *;">

И я обычно могу подключиться к своим конечным точкам, возможно, попробуйте удалить / * in

<allow-navigation href="http://app.jpcomplex.com" />

I 'Вы только что видели это

SEC7120: Origin http://localhost:8000 не найден в заголовке Access-Control-Allow-Origin.

Необходимо включить CORS насервер (http://app.jpcomplex.com). Проверьте этот сайт: http://enable -cors.org /

Все, что вам нужно сделать, это добавить HTTP-заголовок на сервер:

Access-Control-Allow-Origin: http://localhost:8000 Или, для простоты:

Access-Control-Allow-Origin: *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...