我正在使用phonegap开发库存管理移动应用程序,并且在不遇到CORS政策问题的情况下无法弄清楚如何发送http请求。 我安装了cordova高级http插件,但是当我在chrome上预览该应用程序时,cordova对象不存在,因为直到后来才添加cordova.js脚本,因此我真的无法修补该插件。 我只是想发送一个http请求并读回一个JSON。 我有一个网址。 没有用户名或密码。 请帮忙! 我被卡住了!

更新:

我使用以下代码:


    $.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.

#1楼 票数:0

好吧,您只需将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',            
        ...
   );

#2楼 票数:0

您可以在您的API php中使用它

header('Access-Control-Allow-Origin:*'); header(“ Content-Type:application / json; charset = UTF-8”);

#3楼 票数:0

好的! 我终于明白了! 我不得不使用cordova高级http插件。 我使用以下代码:

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);
});

  ask by Brett Balhen translate from so

未解决问题?本站智能推荐:

1回复

如何在phonegap上执行Javascript并返回值?

在electronjs上,我可以在另一个站点上使用executeJavascript并返回如下值,我可以在phonegap上这样做吗? 我找到了,使用 window.open
1回复

如何在phonegap项目中使用(inAppBrowser)插件?

我通过以下命令行在phonegap项目中安装“ inAppBrowser”插件: 并在index.html打击代码中写道: 但它不会打开链接 。 config.xml文件: <?xml version='1.0' encoding='utf-8'?> <wi
1回复

Phonegap音频没有正确的链接

我一直在尝试在PhoneGap android应用程序中播放音频。 音频可以在浏览器中正常运行,但可以在应用中运行。 因此,我尝试遵循以下代码,但无济于事。 但是他们都不起作用。 这是git repo链接。 PhoneGap演示应用
2回复

ngFacebook无法使用phonegap

我在当前的角度应用程序中使用Almog Baku的ngFacebook。 在测试环境中,它工作正常。 但是在通过phonegap的APK构建中,它不起作用。 我已经包括 <dependency id="cordova-plugin-inappbrowser" /> 和
2回复

Phonegap建立Facebook登录

我在适用于Android / iOS的应用程序中使用插件“ com.phonegap.plugins.facebookconnect”可登录Facebook。 它不再工作了,所以我认为我必须将其更改为另一版本,否则如果Phonegape Build摆脱了他们的存储库,它将不再可以编译。 问题
1回复

Phonegap电池周期计数

我想知道我的Phonegap应用程序的电池循环计数。 但是我找不到办法。 Cordova / Phonegap是否有可能,还是我应该在每个平台上使用本机代码?
2回复

Phonegap和Cordova版本

我正在使用phonegap,大多数情况似乎都正常,但是我想更改状态栏颜色以适合我的主题。 我已经按照说明使用了一个插件,但没有成功。 它确实在文档中说我需要Cordova 5+,但我不知道该版本与phonegap版本有什么关系,或者在哪里可以找到正在使用哪个版本的Cordova电话间隙。
1回复

phonegap+Onesignal和minSdkVersion错误

我尝试使用 Onesignal 运行简单的应用程序,但不断收到此错误: FAILURE:构建失败,出现异常。 出了什么问题:任务“:processDebugManifest”执行失败。 清单合并失败:uses-sdk:minSdkVersion 14 不能小于库 [com.o