Jquery.ajax()抛出错误

时间:2013-04-12 02:27:27

标签: php jquery ajax

试试此链接:http://humberinteractive.com/2013/api/index.php?fname=keo

你可以看到它需要$ _GET ['fname']并打印出我需要的内容。

我试过了:

$.ajax({
    type: 'GET',
    url: 'http://humberinteractive.com/2013/api/index.php?fname=keo',
    success: function(data) {
        alert(data);
    }
});

但它不起作用......

jsfiddle:http://jsfiddle.net/3V8VP/

帮助帮助

4 个答案:

答案 0 :(得分:0)

在你的小提琴中,它失败了,因为不允许跨域起源的ajax请求。常见的解决方法是使用JSONP。如果您的最终应用程序位于同一个域中,这将不会成为问题。 JSONP代码如下所示:

<?php

  $data = array("some" => "data"); // make this part yourself
  $callback_name = $_REQUEST["callback"];

  echo $callback_name . "(" . encode_json($data) . ")";

?>

接下来,数据格式不可用。要将数据从PHP传递到Javascript,您应该使用JSON。使用php,将数组/对象转换为JSON格式的函数是json_encode

最后,确保在回答JSON对象时发送正确的mime类型。 (具有正确参数的PHP函数header()应该这样做)

答案 1 :(得分:0)

如果你在不同的域上进行,它可能会阻止作为同源策略。

然后您可以尝试使用JSONP来执行此操作。

通过这种方式,为ajax方法的参数指定dataType: "jsonp",然后jquery将为xxxxxxxx创建成功方法的别名,并且AJAX请求将使用参数{{1}发送}。

在服务器端,您需要捕获回调名称,并输出与现在相同的json数据,其回调名称为callback=xxxxxxxxxx

最后,您的客户端将直接运行此输出。

例如:

JS:

xxxxxxxxx({....})

服务器端,例如php:

$.ajax({
    type: 'GET',
    dataType: 'jsonp',
    url: 'http://humberinteractive.com/2013/api/index.php?fname=keo',
    success: function(data) {
        alert(data);
    }
});

答案 2 :(得分:0)

试试这个:

$.ajax({type: "POST", 
         url: 'http://humberinteractive.com/2013/api/index.php', 
        data: {'fname': 'keo'}
    }).done(function( data) {alert(data);});

答案 3 :(得分:0)

我不知道如何发表评论并回复你。 但这绝对是一些原产地政策。

以下消息是Chrome控制台中显示的内容。

XMLHttpRequest无法加载http://humberinteractive.com/2013/api/index.php?fname=keo。 Access-Control-Allow-Origin不允许原点http://fiddle.jshell.net