javascript - 在wordpress中,Ajax成功案例无法正常工作

  显示原文与译文双语对照的内容

我有这个函数( 整个代码的一部分):


function helloDear_javascript() {?>
 <script type="text/javascript"> 
 jQuery(document).ready(function($) {

 $("#id").click(function(){
 $('.input_triplify').each(function(k,v){
 var mk = $(this).attr('mk');
 var v = $(this).val();
 if(v!= 'correspondencia' && $.trim(v)!= ''){

 $.ajax({
 type:"POST",
 url: ajaxurl,
 data: {action: 'triplify', meta: mk, value: v },//, valores_coluna_posts:
 dataType: 'json',
 success:
 function(data){
 console.log(data);
 },
 error:
 function(data){
 alert('ocorreu um erro ao acessar o banco, favor pesquisar novamente.');
 }
 });
 }
 });
 $("#corpo").hide(1000);
 $("#corpo2").show(1000);
 
 });
 });
 </script> <?php
}

问题是:我的朋友在 xampp 。Windows 8.1和 wordpress 4中运行它。 没关系,返回 console.log(data) 。 使用相同的代码,我在apache中运行它,xubuntu更新和 wordpress 4. 不好,总是到错误的地方。 我找不到原因,因为相同的整个代码。数据库。web浏览器。等等 如果发生错误,将 console.log(data) 返回:


Object { readyState: 4, getResponseHeader:. ajax/v.getResponseHeader(), getAllResponseHeaders:. ajax/v.getAllResponseHeaders(), setRequestHeader:. ajax/v.setRequestHeader(), overrideMimeType:. ajax/v.overrideMimeType(), statusCode:. ajax/v.statusCode(), abort:. ajax/v.abort(), state:. Deferred/d.state(), always:. Deferred/d.always(), then:. Deferred/d.then(),

无论我做什么,它永远不会成功。

谢谢!

时间: 作者:

很可以能你的ajaxurl 包含一些跨域请求值( 或者至少这是浏览器所认为的- 如果你使用 LAN IP address/192.168.1.10/ 使用 127.0.0.1 或者 localhost 来访问它) 。

众所周知,JavaScript Ajax跨域请求被拒绝执行( 尽管这里限制可以忽略) 。 这里限制的重点是阻止站点从远程站点读取数据,而不是阻止它发送数据。

例如,不能让浏览器转到我的帐户并获取帐户详细信息,以便你可以将它们发送到web服务器。

相同原始的同源策略不会阻止你提交资金转移到服务器,但这就是站点必须实现针对 CSRF攻击的防御。

尝试在 type:"POST" 之后在AJAX请求中添加 crossDomain: true, 来测试代码。

编辑:

关于 jQuery error 状态的一些说明: 这是一个函数如果请求失败 ( 这意味着Linux下的浏览器无法发送正确的XMLHttpRequest )

函数接收三个参数: 如果发生了一个错误,则为 jqXHR ( 在 jQuery 1.4. x, XMLHttpRequest 中) 对象,描述发生的错误类型和可选的异常对象。 ( 除了 null ) 。errorabortparsererror的可能值为 timeout 。 出现HTTP错误时,errorThrown 接收HTTP状态的文本部分,如 Not Found 1.5的或者 Internal Server Error.,错误设置可以接受函数的array 。 将依次调用每个函数。

注意:对于跨域脚本和跨域JSONP请求,这个处理程序不是英镑的,这意味着如果脚本进入 error 条件,这不是跨域请求问题,而是浏览器问题。

作者:
...