首页 > 解决方案 > 加载资源失败:在我的 wordpress 网站中的 Safari 上请求超时

问题描述

我有wordpress网站。最近我们在 ajax 请求中遇到了问题。在网站上,当我单击注册并调用 ajax 时,我们打开了注册弹出窗口,它只在 safari 浏览器上显示“加载资源失败:请求超时。”

我尝试使用 async:true、timeout 和 setTimeout 来解决这个问题,但没有人工作。

var request = $.ajax({
                url: jobifySettings.homeurl, 
                data: data,
                type: 'POST',
                cache: false
            }).done(function(response) {
                form.find( $( '.woocommerce-error' ) ).remove();

                var $response = $( '#ajax-response' );
                var html = $.parseHTML(response);

                console.log( response );

                $response.append(html);
                error = $response.find( $( '.woocommerce-error' ) );

                if ( error.length > 0 ) {
                    form.prepend( error.clone() );
                    $response.html('');

                    e.preventDefault();
                }
            });

标签: ajaxsafarirequesttimeout

解决方案


首先,我会说在您的 ajax 设置(您说过您尝试过)中将 async 设置为 true,因为这将使 Safari 保持连接打开,直到您得到响应(然后关闭它)。

但是,如果这对您自己不起作用,您可以尝试在您的 htaccess 文件中添加跨域“CORS”标头(标头集 Access-Control-Allow-Methods:“*”)。如果您遇到 CORS 问题,此故障排除链接可能会有所帮助。

引用链接:(以防将来中断)

<ifmodule mod_headers.c="">
   SetEnvIf Origin "^(.*\.domain\.com)$" ORIGIN_SUB_DOMAIN=$1
   Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN
   Header set Access-Control-Allow-Methods: "*"
   Header set Access-Control-Allow-Headers: "Origin, X-Requested-With, Content-Type, Accept, Authorization"
</ifmodule>

推荐阅读