前端 - jsonp 跨域ajax

jsonp 跨域ajax原理:

  浏览器同源策略限制

如何解决同源策略限制:  

  方式一:

    利用创建script块,在其中执行src属性为 远程url
        异域 用函数(返回值) 的形式返回参数  

  方式二:

    jquery方式
    异域 用函数(返回值) 的形式返回参数

HTML代码

    {#html代码开始#}
        <input type="text" name="k3" value="123">
        {#利用script块方式#}
        <input type="button" onclick="b1()" value="提交1">
        {#jquery 方式#}
        <input type="button" id="bt"  value="提交2">
    {#html代码结束#}

js代码

    <script src="/static/js/jquery-1.12.4.min.js"></script>
    <script>
        {#利用script块方式#}
         function b1() {
            var tag = document.createElement("script");
            tag.src = "http://172.16.3.107:9999/jsonp?callback=func";
            document.head.appendChild(tag);
            document.head.removeChild(tag);
        }

        {#jquery 方式#}
        $(‘#bt‘).click(function () {
            $.ajax({
                    url:‘http://172.16.3.107:9999/jsonp/‘,
                    type:‘GET‘,
                    dataType:‘jsonp‘,
                    jsonp:‘callback‘,
                    jsonpCallback:‘func‘
                })});

        {#定义包裹的函数,从而获取包裹的数据信息#}
        function func(arg) {
            console.log(arg)
        }
    </script>

别人网站设置

  将返回的数据用函数包裹(这里包括的函数从get中提取)

原文地址:https://www.cnblogs.com/Anec/p/9909164.html

时间: 2024-11-15 12:54:52

前端 - jsonp 跨域ajax的相关文章

jsonp跨域ajax跨域get方法

原理: 就是利用<script >标签没有跨域限制的,从而达到与第三方网站通讯的目的.当需要通讯时,本站脚本创建一个<script>标签,src地址指向第三方网站的的一个网址.形如: <script src="http://www.abc.com/index.php/?param1=1&callback=fnName"></script> 本站并提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递). 第三方网站产生的响应

JSONP跨域 ajax请求

原理: 由于浏览器的同源策略不能使用XMLHTTPREQUEST对除本地外的服务器发送请求. 所以使用script标签的src属性发送请求,接收到的JSONP数据以函数名的方式返回. 需要在本地创建服务器返回的函数接收服务器返回的数据. JS代码: function jsonpRequest() { var create_src = document.createElement('srcipt'); #创建script标签 create_src.src = 'http://www.baidu.c

jquery ajax jsonp跨域调用实例代码

今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApp.WebForm1" %><!DOCTYPE html P

跨域ajax原理(jsonp方式)

ajax一般不能跨域,所以跨域ajax的原理不是ajax,而是js节点加载,需提供接口的一方服务端支持. 具体做法: 假设我要做一个跨域ajax接口,与普通ajax接口有所不同,需要多接收一个回调函数名,做成函数调用形式,以下为伪代码. string callback = request.qustring("callback"); string json = "{test:'test'}"; response.write(callback+"("

你不知道的jQuery Item11 -- ajax jsonp跨域方法详解

文章从JSON和JSONP区别开始讲起,用实例来对比他们之间的不同之处,然后详细讲解了jQuery中的ajax jsonp的使用并给出了示例及详细参数说明. 1.JSON和JSONP JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于在浏览器和服务器之间交换信息. JSONP(JSON With Padding),就是打包在函数调用中的的JSON(或者包裹的JSON),你要跨域请求别人的东西,你肯定要包裹起来,不要污染了别人的东西,把Json数据包裹

JQuery+ajax+jsonp 跨域访问

Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 关于Jsonp更详细的资料请参考http://baike.baidu.com/view/2131174.htm,下面给出例子: 一.客户端 Html代码   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.

原生JS封装Ajax插件(同域&amp;&amp;jsonp跨域)

抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正确的地方,还望指正^_^ 一.Ajax核心,创建XHR对象 Ajax技术的核心是XMLHttpRequest对象(简称XHR),IE5是第一款引入XHR对象的浏览器,而IE5中的XHR对象是通过MSXML库中的一个ActiveX对象实现的,因此在IE中可能有3个版本,即MSXML2.XMLHttp.

笔记-Ajax[4]-JSONP跨域获取数据。

JS的跨域:跨域名获取数据,a域名获取b域名中的数据. 解决跨域获取数据的方法也叫JSONP(JSON and Padding) JSONP方法: 1:服务器代理:XMLHttpRequest代理文件 2:script标签:jsonp(常用);//利用script标签的src引入外部文件的功能,src能够引入任何的文件的类型 3:location.hash方式:iframe 4:window.name方式 5:flash方式 6:html5的postMessage方式 例子:百度输入数据下拉框提

JSONP跨域的原理解析

JSONP跨域的原理解析 一种脚本注入行为 在 2011年10月27日 那天写的     已经有 99238 次阅读了 感谢 参考或原文 JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源策略).这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容. JavaScript这个安全策略在进