我正在尝试通过电话间隙应用向我的网站发送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))
如果我需要做其他事情来解决它,请告诉我
答案 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