gpt4 book ai didi

javascript - ajax 请求的问题 (Cordova)

转载 作者:行者123 更新时间:2023-11-30 16:32:43 24 4
gpt4 key购买 nike

我的 cordova 应用程序中的传出请求有一些问题。ajax 请求都不起作用,我也不能包含这样的图像:<img src="http://www.bing.com/s/a/hpc14.png"> .

配置文件:

<plugin name="cordova-plugin-whitelist" version="1" />

<access origin="*" />

<allow-navigation href="*" />
<allow-intent href="*" />

<content src="index.html" />

应用程序.js:

$.ajax({
url: "http://domain.xyz",
type: "post",
data: { "uuid": device.uuid },
dataType: "json",
success: function(json){
alert('it works');
},
error: function(e){
alert("status: "+e.status);
}
});

这总是返回 status: 0

你能帮帮我吗?

最佳答案

如果您使用的是 Cordova 5,并且设备和服务器可以相互看到,您可能必须使用内容安全策略来启用它。参见 Cordova Whitelist Plugin .您要考虑将元标记添加到

示例配置如下:

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

根据您的应用程序还做什么或不做什么,您可能不需要上面的所有其他选项,尽管一些 Ajax 和模板框架需要。以上适用于使用 JQuery 和 Handlebars 的 Cordova 5 应用程序。

此外,对于 Xcode 7/iOS 9,您需要调整 ATS 设置以允许连接到非 https 后端:

以下是更改应用信息 .plist 的工作示例:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

这里有一个脚本,您可以将其用作 iOS 的预构建 Hook 以自动执行此操作:

#!/bin/bash
echo "Adjusting plist for App Transport Security exception." val=$(/usr/libexec/plistbuddy -c "add NSAppTransportSecurity:NSAllowsArbitraryLoads bool true" platforms/ios/PROJECTNAME/PROJECTNAME-Info.plist 2>/dev/null) echo "Done"

只需将 PROJECTNAME 替换为您的项目名称即可。

关于javascript - ajax 请求的问题 (Cordova),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33106444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com