phonegap javascript html获取请求

时间:2018-01-20 08:23:08

标签: javascript phonegap

我正在尝试通过电话间隙应用向我的网站发送http get请求。以下代码使用chrome在我的笔记本电脑上完美运行,但一旦转换为应用程序它就不再有效。特别是,phonegap编译代码很好,并给我一个完美的.apk文件,但只有文本" qwer"被放到屏幕上。这是代码:

<p id="output"></p>

<script>

    var theUrl = "https://example.com"

    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
            document.getElementById("output").innerHTML = xmlHttp.responseText + "qwer"
    }
    xmlHttp.open("GET", theUrl, true); // true for asynchronous
    xmlHttp.send(null);


</script>

请注意,我的网站目前返回&#34; asdf&#34;当你提出要求时

我在chrome中运行时获得的输出就是这样:

asdf qwer

但是当它作为Android应用程序运行时,我得到了这个:

qwer

另外我想提一下,我已经阅读了所有这些,但没有一个特别有帮助:

run https request in phone gap
https request doesn't work in phonegap-iphone app Want to use https request in phonegap application on iphone

当请求来自应用程序时,get请求返回一个空字符串,因为没有抛出任何错误,并且它允许我一起添加字符串。

我想知道如何解决这个问题,以便我在应用表单中工作。我怀疑有某种内置的phonegap功能来做这种事情。

由于

编辑:

我在服务器端处理过CORS。我在heroku上使用python。这是我的代码:

#!/usr/bin/env python
import gevent.monkey
gevent.monkey.patch_all()
import bottle
import os
@bottle.route('/')

def index():
    bottle.response.set_header("Content-Type", "text/turtle")
    bottle.response.set_header("Content-Location", "mydata.ttl")
    bottle.response.set_header("Access-Control-Allow-Origin", "*")
    return("asdf")

bottle.run(server='gevent', host='0.0.0.0', port=os.environ.get('PORT', 5000))

如果我需要做其他事情来解决它,请告诉我

2 个答案:

答案 0 :(得分:4)

我不确定问题是什么,但我认为它可能与CORS(跨源资源共享)有关。

你必须设置     访问控制允许来源

您的浏览器正在发出请求并且工作正常但是当涉及到移动设备时,您必须设置一些额外的参数

https://www.telerik.com/blogs/using-existing-backend-services-in-phonegap-cordova-applications

此链接可能有用,可能不是java的东西,而是Access-Control-Allow-Origin的设置。看看。

答案 1 :(得分:0)

检查您的config.xml,确实要导入return listen.stream().map(x -> x * multi).collect(Collectors.toList()); 并允许http和https网址。

whitelist-plugin