iOS Safari CORS请求失败

时间:2019-05-27 20:08:24

标签: php ios safari cors

因此,我已经编码了一个终结点,该终结点以JSON格式打印出一些招聘广告。我将其称为 servicedomain.com 。像这样:

public function jobs() {
    header('Access-Control-Allow-Origin: https://somedomain.com');
    header('Access-Control-Allow-Credentials: true');
    header('Content-type: application/json');
    $xmlStr = file_get_contents('https://some.other.service/where/the_adverts_actually_are');
    $xml = simplexml_load_string($xmlStr);
    $json = array();

    foreach ($xml->advert as $advert) {
        $json[] = json_encode($advert);
    }

    echo '[' . implode(',', $json) . ']';
    die();
}

somedomain.com 的最后,这是一段执行抓取操作的JavaScript:

$.fn.getDataFromUrl = function (url) {
    var that = this;
    $.get(url, function (response) {
        $('[data-object="repeat"]', that).each(function () {
            var template = $(this);

            for (var i = 0; i < response.length; i++) {
                var item = template.clone();
                $('[data-html]', item).each(function () {
                    var key = $(this).data('html');
                    $(this).html(response[i][key]);
                });

                $('[data-attr]', item).each(function () {
                    var attr = $(this).data('attr');
                    var key = attr;
                    if ($(this).data('val')) {
                        key = $(this).data('val');
                    }
                    var prefix = $(this).data('prefix') ? $(this).data('prefix') : '';
                    $(this).attr(attr, prefix + response[i][key]);
                });

                template.after(item);
            }

            template.remove();
        });
    });
};

上面的JavaScript是从 servicedomain.com 获取的,与该问题顶部的PHP脚本相同。

所有这些在Firefox上都能很好地工作,但是后来我发现它在iOS Safari上不起作用。从谷歌搜索中,我推断出它在OS-X Safari中也不起作用。我已经看到了解决方案,但是我很难理解它们并将其应用于我的特定实现。我不确定我缺少什么或做错了什么。是我应该发送到servicedomain.com 的标头还是我应该从servicedomain.com发送回标题的标头

0 个答案:

没有答案