发新贴  快速回复

ajax跨域请求

妙味用户109032
2017-12-27 17:07

window.err= = function(){
    $(function () {
        $.ajax({
            url:'http://114.113.126.5/Tagging/cartdata',
            type: 'GET',
            dataType:'json',
            success: function (res) {
                if(res.code == 20){
                    console.log(res)

                }

        })

    }

}

在前端请求这个地址上的Json数据的时候报错,Failed to load http://114.113.126.5/Tagging/cartdata: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.

但是不知道怎么解决

Flowke

你 http://114.113.126.5/Tagging/cartdata 这个接口是哪来的。 对方没能允许跨域, 只能是自己写服务器来代理了

2017-12-27 18:03  回复本帖
 
2017年2月8日

看你这个代码和这个报错,九成是跨域的问题。你在本地的服务器去请求远程文件,域名肯定不同,那目前低版本的ajax是不支持跨域的。如果你用jq,type不用写,dataType应该为jsonp。然后这个地址(http://114.113.126.5/Tagging/cartdata)里面的代码应该是一个函数。jsonp的原理就是一个函数执行,结果当参数返回出来。所以你上面即使写成jsonp也有可能是错的。

 

如果你非要在本地服务器获取(http://114.113.126.5/Tagging/cartdata)这个地址的数据,建议你可以写一个php文件。跟妙味ajax视频讲解的那样。php文件这样写。名字命名为(1.php),内容为:

<?php

header('Content-type:text/html; charset="utf-8"');

$url = 'http://114.113.126.5/Tagging/cartdata';

$content = file_get_contents($url);

$content = iconv('gbk', 'utf-8', $content);

echo $content;

?>

然后你的js代码这样写:

 $(function(){

$.ajax({

url:'1.php',

success: function (data) {

console.log(data)

}

});

});

2017-12-27 22:50  回复本帖
妙味用户109032

Flowke 2017-12-27 18:03发表的内容:

你 http://114.113.126.5/Tagging/cartdata 这个接口是哪来的。 对方没能允许跨域, 只能是自己写服务器来代理了

代码是PHP后台给的,但是如果我自己写服务器代理的话,到期上线会不会影响PHP后台?
2017-12-28 09:39  回复本帖
妙味用户109032

2017年2月8日 2017-12-27 22:50发表的内容:

看你这个代码和这个报错,九成是跨域的问题。你在本地的服务器去请求远程文件,域名肯定不同,那目前低版本的ajax是不支持跨域的。如果你用jq,type不用写,dataType应该为jsonp。然后这个地址(http://114.113.126.5/Tagging/cartdata)里面的代码应该是一个函数。jsonp的原理就是一个函数执行,结果当参数返回出来。所以你上面即使写成jsonp也有可能是错的。

 

如果你非要在本地服务器获取(http://114.113.126.5/Tagging/cartdata)这个地址的数据,建议你可以写一个php文件。跟妙味ajax视频讲解的那样。php文件这样写。名字命名为(1.php),内容为:

<?php

header('Content-type:text/html; charset="utf-8"');

$url = 'http://114.113.126.5/Tagging/cartdata';

$content = file_get_contents($url);

$content = iconv('gbk', 'utf-8', $content);

echo $content;

?>

然后你的js代码这样写:

 $(function(){

$.ajax({

url:'1.php',

success: function (data) {

console.log(data)

}

});

});

老师,好了,谢谢您!
2017-12-28 10:24  回复本帖
登录 后才可以发表回复