XMLHttpRequest无法加载请求标头字段Access-Control-Allow-Headers不允许Content-Type

时间:2014-04-30 13:36:14

标签: jquery ajax firebug google-chrome-devtools

我有一个jquery ajax调用,我试图以json数据格式从外部API获取数据。这是我的代码..

$("#click").click(function () {

                $.ajax({
                    type: "POST",
                    url: "http://pnrbuddy.com/api/check_pnr/pnr/2156641988/format/json/pbapikey/6b17f33e25e2d8197462d1c6bcb0b130/pbapisign/bd0aea241e88c8a22692eba02887ad97a220f827",
                    contentType: "application/json",
                    async: false,
                    success: function (data) {
                        $("#response").html(data.d);
                    }

                });
            });

当我点击按钮时,任何值都没有任何响应在mozill中进入firebug。当试图执行chrome获取错误时...

XMLHttpRequest cannot load http://pnrbuddy.com/api/check_pnr/pnr/2156641988/format/json/pbapikey/6b17f…5e2d8197462d1c6bcb0b130/pbapisign/bd0aea241e88c8a22692eba02887ad97a220f827. Request header field Content-Type is not allowed by Access-Control-Allow-Headers. 

请帮帮我.. 提前谢谢..

2 个答案:

答案 0 :(得分:2)

这是你工作的Ajax。我测试了它,它正确地提供了有关pnr查询的信息。

$.ajax({
 type: "GET",
 crossDomain:true,
 url: "http://pnrbuddy.com/api/check_pnr/pnr/2156641988/format/json/pbapikey/6b17f33e25e2d8197462d1c6bcb0b130/pbapisign/bd0aea241e88c8a22692eba02887ad97a220f827", 
 success: function (data) { 
    alert(data.pnr); // result - 2156641988
    alert(data.train_num); // result - 14208
    alert(data.train_name); // result - PADMAVAT EXPRES 
 } 
}); 

答案 1 :(得分:1)

在服务器端,您应该在此目录中添加.htaccess,内容为:

标题集Access-Control-Allow-Origin:*

标题集Access-Control-Allow-Headers:content-type

标题集Access-Control-Allow-Methods:*