【问题标题】:How to fix 'Access-Control-Allow-Origin' header has a value that is not equal to the supplied origin on Webview Android?如何修复“Access-Control-Allow-Origin”标头的值不等于 Webview Android 上提供的原点?
【发布时间】:2019-09-17 17:26:34
【问题描述】:

所以我的 Android 应用上有一个 Webview。在 HTML 页面中,我有一个 ajax 调用,每当用户单击/触摸按钮时,它都会从域中我自己托管的 php 中获取一个值。

WebView/HTML 文件中的 Ajax 调用:

$.ajax({
type: "POST",
url: "https://xxx.xxx.xxx.xxx/test/test.php", //url of php file
crossDomain: true,
}).done(function (data) {
    alert(data);
});

在我的 php 文件中,我有以下代码:

<?php
header('Access-Control-Allow-Origin: file:///android_asset/www/index.html');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');

echo "Hello World";

?>

在这里,我遇到了一个 CORS 问题,它告诉我我的“Access-Control-Allow-Origin”标头的值“file:///android_asset/www/index.html”不等于提供的原产地。价值应该是多少?另外,如果我有多个设备使用同一个 php 文件,我如何使其动态化?

提前致谢!

【问题讨论】:

    标签: php ajax webview cors


    【解决方案1】:

    试试这个代码:

    <?php
     header('Access-Control-Allow-Origin: *');
     header('Access-Control-Allow-Methods: *');
     header('Access-Control-Allow-Headers: *');
    
     echo "Hello World";
    ?>
    

    【讨论】:

    • 这很奇怪,当我之前尝试使用 * 时,它给了我一个“不能使用通配符 (*)”。现在它起作用了。感谢您的帮助!
    • 很高兴为您提供帮助
    猜你喜欢
    • 2016-10-28
    • 2020-11-12
    • 2020-09-30
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 2016-10-25
    • 2016-01-11
    • 2018-04-12
    相关资源
    最近更新 更多