我正在尝试执行ajax调用。只是没有从服务器得到任何反馈。有人能帮我看一下我的代码并建议我怎么做吗?我在这里查了很多答案,但似乎无法让它正常工作
Jquery代码
这是执行ajax调用的jquery代码
$(document).ready(function(){
$('#loadAllProducts').html('Loading Product...<i class="fa fa-spinner fa-spin"></i>').fadeIn();
$.ajax({
type : 'post',
url : 'https://spg.ng/farmtransactpro/api/loadAllProductsOnLoad.php',
//data : dataString,
crossDomain: true,
success : function(result){
$('#loadAllProducts').html(result).fadeIn();
}
});
});
loadAllProductsOnLoad.php
这是api内容
<?php
header('Content-Type: application/json');
header("Access-Control-Allow-Origin: *");
echo 'hi...am bringing feedback';
?>
config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.farmtransact" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Farmtransact</name>
<description>
FarmTransact is an online marketplace which consists of all kinds of agricultural products and agricultural services
</description>
<author email="" href="">
Chike Okoli
</author>
<content src="index.html" />
<preference name="DisallowOverscroll" value="true" />
<preference name="android-minSdkVersion" value="14" />
<access origin="https://spg.ng/farmtransactpro/api/" />
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" />
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
<icon density="ldpi" src="www/res/icons/android/icon-36-ldpi.png" />
<icon density="mdpi" src="www/res/icons/android/icon-48-mdpi.png" />
<icon density="hdpi" src="www/res/icons/android/icon-72-hdpi.png" />
<icon density="xhdpi" src="www/res/icons/android/icon-96-xhdpi.png" />
<icon density="xxhdpi" src="www/res/icons/android/icon-128-xxhdpi.png" />
<icon density="xxxhdpi" src="www/res/icons/android/icon-192-xxxhdpi.png" />
<splash density="land-ldpi" src="www/res/screens/android/screen-ldpi-landscape.png" />
<splash density="land-mdpi" src="www/res/screens/android/screen-mdpi-landscape.png" />
<splash density="land-hdpi" src="www/res/screens/android/screen-hdpi-landscape.png" />
<splash density="land-xhdpi" src="www/res/screens/android/screen-xhdpi-landscape.png" />
<splash density="port-ldpi" src="www/res/screens/android/screen-ldpi-portrait.png" />
<splash density="port-mdpi" src="www/res/screens/android/screen-mdpi-portrait.png" />
<splash density="port-hdpi" src="www/res/screens/android/screen-hdpi-portraite.png" />
<splash density="port-xhdpi" src="www/res/screens/android/screen-xhdpi-portrait.png" />
<splash src="splash.png" />
</platform>
<access origin="https://spg.ng/farmtransactpro/api/" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
</widget>
这不会触发success
处理程序。
添加一个error
处理程序,并将响应记录到控制台。
您将看到它包含statusText: "parsererror"
,这是假装响应是Content-Type: application/json
,但随后发送的数据实际上不是有效的JSON的结果。
因此,解决方案:让您的PHP脚本发送实际有效的JSON。
正如我在评论中所说,您可能在以下方面有问题:内容安全策略
我用Cordova构建了一些应用程序,但我不是很高级。不过这可能会对你有所帮助,所以试试吧:
->在主index.html
文件中,将其添加到head
部分:
<meta http-equiv="Content-Security-Policy" content="connect-src 'self' https://spg.ng/farmtransactpro/api/">
这样行吗?
请参阅此处Cordova内容安全政策的完整指南-文档