跨域解决方案等一些问题(jsonp,nginx代理等)
2018-03-18 15:16
393 查看
1. 用jsonp跨域需要后台修改代码
后台需要用前台传递的函数名将数据包起来,本质上是一个函数调用,将数据当做参数传递回来。callback({"data": "ok"})所以普通的ajax请求产生的数据不能用jsonp去请求;
但是一个接口也可以同时支持普通的ajax请求(返回json对象),和jsonp请求(返回一串js代码),这需要后台和前台约定好一个参数作为函数名,如callback=cb,后台判断是否有这个参数,如果有这个参数就返回jsonp请求。
2. jsonp的弊端
服务器需要改动代码;只支持get请求;
所以现在很少用了。
3. 跨域请求带上cookie
一般的ajax请求都会默认带上cookie,但是跨域默认不会带cookie,要带上cookie必须加一行代码;$.ajax({ url : 'http://remote.domain.com/corsrequest', data : data, dataType: 'json', type : 'POST', xhrFields: { withCredentials: true }, ...
4. 带cookie的跨域
后台不能将Access-Control-Allow-Origin设置为*设置Access-Control-Allow-Credentials: true
文章来自北大青鸟学校开发实验小组测试得来
相关文章推荐
- nginx配置反向代理解决前后端分离跨域问题
- nginx配置反向代理解决前后端分离跨域问题
- 跨域问题的解决方案——JSONP
- nginx反向代理node,解决前后端跨域问题
- 利用nginx 反向代理解决跨域问题
- Mac下使用nginx反向代理服务器解决资源跨域问题
- 配置nginx反向代理服务器,解决浏览器跨域调用接口的限制问题
- Nginx 的使用配置并利用nginx 反向代理解决跨域问题
- 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案
- nginx 配置静态web服务器以及反向代理服务器的一些问题
- vue.js使用代理和使用Nginx来解决跨域的问题
- 用反向代理nginx proxy_pass配置解决ie8 ajax请求被拦截问题 ie8用nginx代理实现跨域请求访问 nginx405正向代理request_uri
- Nginx 反向代理解决跨域问题
- nginx配置反向代理解决前后端分离跨域问题
- jsonp 跨域访问的一些常见问题
- 跨域问题,解决方案 - Nginx反向代理
- js跨域问题解释 解决方案值使用jsonp或jQuery
- JAX-RS开发(三):ajax访问REST服务时的跨域问题以及jsonp解决方案
- vue打包使用Nginx代理解决跨域问题
- Nginx反向代理、CORS、JSONP等跨域请求解决方法总结