我有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();
}
});
答案 0 :(得分:0)
首先,我想说要在ajax设置(您说过尝试过)中将async设置为true,因为这将使Safari保持连接打开状态,直到您收到响应(然后将其关闭)为止。
但是,如果这对您来说不起作用,则可以尝试在htaccess文件中添加跨域的“ CORS”标头(标头设置Access-Control-Allow-Methods:“ *”)。如果您在CORS方面遇到问题,此troubleshooting link可能会有所帮助。
引用链接:(以防将来中断)
<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>