跨域问题

Posted Vicky_YU

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨域问题相关的知识,希望对你有一定的参考价值。

下面罗列一些实际项目中遇到的一些跨域问题。

1.数据格式错误导致请求失败

  请求如下:

$.ajax({
                    url: \'http://XXX\',
                    type: \'POST\',
                    dataType: \'application/json\',
                    data: {name:plane_name,drone_model:plane_type,sn_code:plane_sn},
                    success:function(data){
                        console.log("请求成功")
                        console.log(data)
                    },
                    error:function(XMLHttpRequest, textStatus, errorThrown) {
                       console.log("请求失败")
                       console.log(XMLHttpRequest)
                       console.log(textStatus)
                       console.log(errorThrown)
                    }
                })
   });

  

  控制台打印如下:

  

  原因:

  datatype设置的格式错误,改成json即可。其实datatype是返回的数据格式类型,这个要看后台返回给我们的到底是什么格式,是json ,那就填json。

 

2.jsonp跨域

  一般情况出现下图的报红,那就是出现了跨域问题。常见的解决方法就是使用jQuery的jsonp。

  

  但是使用jsonp之后,仍然出现错误,报错如下:

Uncaught SyntaxError: Unexpected token :

  使用 Ajax 获取 json 时,存在跨域限制;而使用 jsonp 方式,这个报错,是因为服务器端没有按照jsonp的要求将数据拼接到回调函数的参数中,而是直接返回一个json,所以会出错。

  原因:就是这个接口不支持前端跨域请求,需要后台去获取,然后再返回给前端。

  

 

以上是关于跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

解决跨域问题代码

跨域问题

PHP后台代码解决跨域问题

JAVA解决前端跨域问题。

PHP中运用jQuery的Ajax跨域调用实现代码