JQuery无法通过localhost:8888检索数据drupal服务

时间:2013-09-26 15:31:07

标签: php jquery web-services drupal-7

我已经按照本教程的说法创建了一个服务,我可以看到当我在浏览器中输入这个网址时:

http://{localhost}:8888/drupal2/test_test/node/1.jsonp

http://{localhost}:8888/drupal2/test_test/node/1.json

http://{localhost}:8888/drupal2/test_test/system/connect.json

我得到了json回调。但是当它在jquery代码中时,我得到了

  

XMLHttpRequest无法加载   HTTP:// {本地主机}:8888 / drupal2 / test_test /节点/ 1.json类型=交&安培;格式= JSON。   来源http:// {localhost}:8383不被允许   访问控制允许来源。

为什么会这样?

JQuery代码:

$(function() {
    var urlis = "http://localhost:8888/drupal2/test_test/node/1.json";
    $.getJSON(urlis, {
        type: 'post', 
        format: "json"
        }).done(function(afterdone) {
        console.log("JSONP Data");
    })
     .fail(function(error) {
        console.log("NO!");
    });
});

2 个答案:

答案 0 :(得分:1)

您需要允许跨域AJAX。要在PHP中执行此操作,请修改scirpt:

header('Access-Control-Allow-Origin: domain.com');

或修改你的htaccess或apache conf文件:

<FilesMatch "\.*$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "domain.com"
  </IfModule>
</FilesMatch>

另外,请查看有关Cross domain AJAX request with JSON response

的这篇文章

答案 1 :(得分:1)

在您的服务器上添加响应标头:

Access-Control-Allow-Origin: from-specific-domain.com

你也可以用php做到这一点:

<?php 
    header('Access-Control-Allow-Origin: from-specific-domain.com');
?>