我有wordpress网站。最近我们在 ajax 请求中遇到了问题。 在网站上,当我单击注册并调用 ajax 时,我们打开了注册弹出窗口,它得到"无法加载资源:请求超时"。 仅在 Safari 浏览器上
我尝试使用 async:true、超时和设置超时来解决此问题,但没有人工作。
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();
}
});
首先,我会说在您的ajax设置中保持async设置为true(您说您尝试过),因为这将使Safari保持连接打开状态,直到您得到响应(然后关闭它)。
但是,如果这本身不起作用,您可以尝试在 htaccess 文件中添加跨源"CORS"标头(标头集访问控制允许方法:"*")。如果您在使用 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>