jsonp

AJAX之跨域请求

大兔子大兔子 提交于 2021-02-07 17:07:59
  一、引子   我现在开启了两个django项目,分别叫Demo1和Demo2,Demo1中有一个路径‘http://127.0.0.1:8000/index/’,对应的视图是index视图返回一个index页面,页面中只有一个button按钮,按钮绑定了一个单击事件,点击之后会发送一个ajax请求,请求的路径为‘http://127.0.0.1:8001/ajax/’,Demo1的ip和端口号是:‘http://127.0.0.1:8000/’,Demo2的ip和端口号是:‘http://127.0.0.1:8001/’。前面一段描述就是在Demo1项目的一个页面向Demo2项目发送一个ajax请求,在Demo2有对应的路径和视图来处理请求,并返回值。我们运行一下。报错如下:   这就是一个已拦截的跨域请求的错误,错误内容是CORS头少“Access-Control-Allow-Origin”。这就是我们用ajax发送一个跨域请求出现的错误,这就是今天我要处理的一个问题。   二、同源策略   同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能就会受到影响,可以说web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 同源策略,它是由Netscape提出的一个著名的安全策略

PHP curl headers

你说的曾经没有我的故事 提交于 2021-02-07 09:31:36
问题 I am not very good using PHP and cURL, normally I just make a call with either javascript or C# however I am working with wordpress so C# is not possibly, and I have an apikey with in the call url, so I was wondering if I could have some help with this. In javascript, the call would be. var forecastOptions = { "cache": false, "dataType": "jsonp", "url": callSite }; var forecastRequest = $.ajax(forecastOptions); I do it this way for my readability. I also don't want to turn on the "allow_url

百度地图 Javascript API 笔记

对着背影说爱祢 提交于 2021-01-31 21:33:42
因为最近的一个项目用到,所以自己整理了一下遇到的一些坑 自己写了一个类库来二次封装用于调起常用的功能: https://github.com/iRuxu/iBMap 快速文档链接 Javascript API v2.0 类参考 | 官方指南 | demo Web API URI API v2.0 1.1 Javascript API 首先自己调起百度地图的话,需在页面引入对应API文件,如使用2.0: < script type ="text/javascript" src ="http://api.map.baidu.com/api?v=2.0&ak=您的密钥" ></ script > {坑一} 在一些浏览器上不能异步加载,会被阻止,所以还是需要将api文件直接在页面中引入。 {坑二}官方demo中有些示例似乎失效的,例如地址解析方法已经不可用,会报错,需通过Web API来异步调取结果。 内部的Point等构造方法,都是 先lng经度后lat纬度 。 {坑三} 接口方法的调用需要在页面文档就绪以后,且对其装载元素指定尺寸,否则会出现地图渲染错误。 1.2 Web API 基于此返回一些给javascript API及sdk使用的数据。 {坑四} 如进行正地理编码,值得注意的是,在使用jquery发起ajax请求时, 必须指定data-type为jsonp,否则不能正常返回 。

CORB when using JSONP

帅比萌擦擦* 提交于 2021-01-29 00:14:25
问题 I am trying JSONP. I have a HTML like below: <html> <head> <title>JSONP</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script src="js/main.js"></script> <script src ="https://truthsearcher83.000webhostapp.com/players_json.php?callback=showPlayers"></script> </body> </html> My main.js file is : function showPlayers(data){ console.log(data); } My php file is : <?php $json_obj = '{ $json_obj = '{"sachin" :{"country":"India" ,

同源策略和跨域解决方案

别来无恙 提交于 2021-01-25 06:59:01
同源策略 一个源的定义 同源策略和跨域解决方案 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的 源 。 举个例子: 下表给出了相对http://a.xyz.com/dir/page.html同源检测的示例: URL 结果 原因 http://a.xyz.com/dir2/other.html 成功 http://a.xyz.com/dir/inner/another.html 成功 https://a.xyz.com/secure.html 失败 不同协议 ( https和http ) http://a.xyz.com:81/dir/etc.html 失败 不同端口 ( 81和80) http://a.opq.com/dir/other.html 失败 不同域名 ( xyz和opq) 同源策略是什么 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以xyz.com下的js脚本采用ajax读取abc.com里面的文件数据是会被拒绝的。 同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。 不受同源策略限制的 1. 页面中的链接,重定向以及表单提交是不会受到同源策略限制的。 2. 跨域资源的引入是可以的。但是js不能读写加载的内容。如嵌入到页面中的

跨域简单介绍

爱⌒轻易说出口 提交于 2021-01-24 19:16:17
1.什么是跨域 下面的这些情况是属于跨域的: 协议不同,如http, https; 端口不同; 主域相同,子域不同; 主域不同; ip地址和域名之间也算是跨域,浏览器不会自动做ip域名的映射; 2.跨域不能访问的原因 说到跨域,一般人都有一个模糊的概念,大概就是从一个域名的网页去访问了另一个域名的资源,获取失败了。 但是跨域产生的原因,有些人可能就没了解过。 跨域的原因 跨域时不能获取资源,并不是服务器做了一些限制。 而是浏览器做的限制 。 没错,你写一个ajax跨域请求时,打开F12调试,会发现在response里面是拿到了服务器返回的数据的。由此可以看出服务器并没有对跨域做限制,数据通信是正常的。 问题出现的原因,就是浏览器判断了该请求是跨域请求,所以即使从服务器拿到了数据,也不显示给你。并且提示你出错了,跨域请求了。 所以,现在一般人在说跨域的时候都在说ajax跨域问题,js跨域问题,这个叫法是不对的,应该改成, 浏览器的跨域问题 , 3.为什么浏览器会有跨域限制 如果浏览器不做跨域限制,会出现安全问题。 比如可以做下面的攻击: 1.用户登录了自己的银行页面 http://mybank.com,http://mybank.com向用户的cookie中添加用户标识。 2.用户浏览了恶意页面 http://evil.com。执行了页面中的恶意AJAX请求代码。 3.http:/

node.js vue-axios和vue-resource

心已入冬 提交于 2021-01-23 06:37:57
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue-resource</title> <script src="../../node_modules/"></script> <script src="../../node_modules/vue-resource/dist/vue-resource.js"></script> </head> <body> <div id="app"> <h2>vue-resource演示</h2> <a href="#" @click="sendGet">发送Get请求</a> <a href="#" @click="sendPost">发送Post请求</a> <a href="#" @click="sendJsonp">发送Jsonp请求</a> <a href="#" @click="send">全局函数</a> <p v-text="response"></p> </div> <script> new Vue({ el:"#app", data:{ response:'', msg:'' }, methods:{ sendGet: function () { var _this = this; //http://www.imooc.com

进阶必备的网络基础

非 Y 不嫁゛ 提交于 2021-01-20 22:46:06
前言 在不那么遥远的一些年以前,一个在江湖中行走的前端,只需要了解“前端三剑客”就足以找到一份工作。很多前端只限于 CSS,HTML、JS ,网络基础,数据结构之类的都不甚了解。不过这个时期的前端也是最受鄙视的时期,这个时期前端的大量工作依赖于后端,且不需要动画效果和交互效果。 现如今前端圈已经发生翻天覆地的变化, Vue,React,ES6,HTML5,CSS3,Webpack,PostCss 等技术层出不穷。作为一个有格局的前端,对网络基础定是要了然于心的。 如果你对网络基础还不太了解,以下的内容可以给你提供一个思路;如果你对此已经了然于心,以下的内容烦请批评指正。 入题 任何事物的诞生,最初都是服务于极少数人的。渐渐地被这极少数人推而广之,我们大众就开始接触了解它,互联网是如此,麻将亦是如此。不管是互联网还是麻将,它们都增强了人与人之间的交流。 接下来我会讲以下内容: 五层因特网协议栈 HTTP 与 HTTPS 的区别 TCP/IP 协议 三次握手和四次挥手 DNS 域名解析 五类 IP 地址 跨域的原因及处理方式 正向代理和反向代理 CDN 带来的性能优化 HTTP 强缓存&协商缓存 五层因特网协议栈 TOP 五层因特网协议栈这个知识点对你来说或许有点枯燥,不过当你对这个协议栈有了一个初步的了解之后,你之前的某些疑问就会很明朗。 一、应用层 应用层( application

【前端词典】进阶必备的网络基础

爷,独闯天下 提交于 2021-01-20 14:37:15
前言 在不那么遥远的一些年以前,一个在江湖中行走的前端,只需要了解“前端三剑客”就足以找到一份工作。很多前端只限于 CSS , HTML 、 JS ,网络基础,数据结构之类的都不甚了解。不过这个时期的前端也是最受鄙视的时期,这个时期前端的大量工作依赖于后端,且不需要动画效果和交互效果。 现如今前端圈已经发生翻天覆地的变化, Vue , React , ES6 , HTML5 , CSS3 , Webpack , PostCss 等技术层出不穷。作为一个有格局的前端,对网络基础定是要了然于心的。 如果你对网络基础还不太了解,以下的内容可以给你提供一个思路;如果你对此已经了然于心,以下的内容烦请批评指正。 入题 任何事物的诞生,最初都是服务于极少数人的。渐渐地被这极少数人推而广之,我们大众就开始接触了解它,互联网是如此,麻将亦是如此。不管是互联网还是麻将,它们都增强了人与人之间的交流。 接下来我会讲以下内容: 五层因特网协议栈 HTTP 与 HTTPS 的区别 TCP/IP 协议 三次握手和四次挥手 DNS 域名解析 五类 IP 地址 跨域的原因及处理方式 正向代理和反向代理 CDN 带来的性能优化 HTTP 强缓存&协商缓存 五层因特网协议栈 TOP 五层因特网协议栈这个知识点对你来说或许有点枯燥,不过当你对这个协议栈有了一个初步的了解之后,你之前的某些疑问就会很明朗。 一、应用层

Uncaught SyntaxError: Unexpected token : 开发遇到的跨域问题

你。 提交于 2021-01-20 09:12:09
先描述一下,这个问题,是如何遇到的 在ajax调用远程服务的时候,报了一个 Origin xxxxxx is not allowed by Access-Control-Allow-Origin 的错误, 大概的意思就是说,没有权限,解决方法据说要在服务端的response里面设置一个权限(网上有例子), 可是,服务端的方法,不可以修改, 所以就用到了jsonp的跨域访问。 具体的格式如下: jQuery.ajax({ type: 'GET', url: 'http://wncrunners.com/admin/colors.json' , dataType: 'jsonp', success: function(data) { alert('success'); }     error:function(){       console.log('error');     } }); 但是呢,具体调用时,就报了一个这样的错;[虽然报错,但是json数据已经正确取出] 该错误是google报的:报错信息: Uncaught SyntaxError:Unexpected token: 这个大概的意思说:返回的是json,但是指定的 dataType却是jsonp,所以会报这种错误。 解决的办法如下:[我的代码是这样的] $.ajax({ crossOrigin: true, url