Как отправлять HTTP-запросы в телефонной пробке? - PullRequest
0 голосов
/ 18 сентября 2019

Я использую phonegap для разработки мобильного приложения для управления запасами и не могу понять, как отправить http-запрос, не столкнувшись с проблемой политики CORS.Я установил расширенный http-плагин cordova, но при предварительном просмотре приложения в chrome объект cordova не существует, поскольку сценарий cordova.js не добавляется до тех пор, пока я не смог поработать с плагином.Я просто хочу отправить запрос http и прочитать обратно JSON.У меня есть URL.Там нет имени пользователя или пароля.Пожалуйста помоги!Я застрял!

Обновление:

Я использовал этот код:


    $.ajax({

    url: 'https://api.barcodelookup.com/v2/products?barcode=075500000010&formatted=y&key=8f5uvzskkmjnptt43bz7yjzgwehscl',
    data: null,
    type: 'GET',
    crossDomain: true,
    dataType: 'jsonp',
    success: function() { alert("Success"); },
    error: function() { alert('Failed!'); },
});

И запрос прошел, но ответ блокируется.Я попытался внести белый список, добавив это в свой xml:

allow-intent href="https://api.barcodelookup.com/*"
access origin="https://api.barcodelookup.com/*"

Но я все еще получаю эту ошибку, говоря, что ответ был заблокирован:

jquery-1.11.1.min.js:4 Cross-Origin Read Blocking (CORB) blocked cross-origin response https://api.barcodelookup.com/v2/products?barcode=075500000010&formatted=y&key=8f5uvzskkmjnptt43bz7yjzgwehscl&callback=jQuery111107483149196833481_1568855081600&_=1568855081601 with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details.

Ответы [ 3 ]

0 голосов
/ 19 сентября 2019

вы можете использовать это в своем API php

header ('Access-Control-Allow-Origin: *');заголовок ("Content-Type: application / json; charset = UTF-8");

0 голосов
/ 20 сентября 2019

Хорошо!Я наконец получил это!Мне пришлось использовать расширенный http-плагин Cordova.Я использовал следующий код:

const options = {
  method: 'get',
  headers: { Authorization: 'OAuth2: token' }
};

cordova.plugin.http.sendRequest('https://api.upcitemdb.com/prod/trial/lookup?upc=075500000010', options, function(response) {
  // prints 200
  alert(response.status);
  var obj = JSON.parse(response.data); // This is the resultant JSON in useful form
}, function(response) {
  // prints 403
  alert(response.status);

  //prints Permission denied
  alert(response.error);
});
0 голосов
/ 19 сентября 2019

Ну, вы можете просто добавить jQuery в свое приложение и сделать

$.ajax({
        url: "http://localhost/",
        type: "POST",
        crossDomain: true,
        data: JSON.stringify(somejson),
        dataType: "json",
        success: function (response) {
            var resp = JSON.parse(response)
            alert(resp.status);
        },
        error: function (xhr, status) {
            alert("error");
        }
    });

Вы также можете попробовать это в зависимости от вашего бэкэнда (и опубликовать данные в виде строки JSON)

$.ajax({
        method:'POST',
        url:url,
        data:json_string,
        async:true,
        processData:false,
        contentType:'application/x-www-form-urlencoded',
        dataType:'json',            
        ...
   );
...