ajax跨域的几种实现方式

news/2024/7/10 22:51:29 标签: ajax, javascript, jsonp, jquery, js

什么是跨域

同协议,同ip,同端口视为一个域,当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。

ajax_3">原生态ajax跨域实现

通过动态创建script标签通过src发送跨域地址,通过定义function XXX()函数由服务器响应的内容调用,接收服务器响应的数据。注意,XXX()函数名需要与服务器返回的函数名保持一致。

javascript">    <script type="text/javascript">
       //动态创建script标签发出去的请求是跨域请求,默认的请求方式是get。
        var script = document.createElement('script');
        //请求数据地址,?后面可以接传递的参数
        script.src = 'http://tom.com/data.php?flag=1&name=get';
        var head = document.getElementsByTagName('head')[0];
        head.appendChild(script);
        // 这里的response函数实际上由服务器响应的内容调用
         function response(data){
            console.log(data);
        }
    </script>

服务器响应

   <?php
   //输出的response方法名需跟前端保持一致
   echo "response(123)";
   //也可以传个数组
   echo "response(".json_encode($arr).")";

ajax_29">jQuery实现ajax跨域请求

在jQuery实现ajax跨域请求中,请求的类型type只能为get,dataType只能为’jsonp>jsonp’,jsonp>jsonp表示跨域请求数据。

javascript">//引入jQuery包
    <script type="text/javascript" src="./jquery.js"></script>
    //jQuery代码
    <script type="text/javascript">
        $(function(){
        //点击发送请求
            $("#btn").click(function(){
                $.ajax({
                    type:'get',//跨域请求的type默认为get请求
                    url:'www.tie.com/jsonp>jsonp.php',//请求的地址
                    dataType:'jsonp>jsonp',//jsonp>jsonp表示跨域请求数据
                    jsonp>jsonp:'cb',//jsonp>jsonp属性的作用就是自定义参数名字(callback=abc 这里的名字指的是等号前面的键,后端根据这个键获取方法名,jquery的默认参数名称是callback)
                    jsonp>jsonpCallback:'abc',//这个属性的作用就是自定义回调函数的名字(callback=abc ,这里的名字指的是等号后面的值)
                    data:{},//需要传递给后端的值
                    //回调函数,接收后端响应的数据
                    success:function(data){
                        console.log(data);
                    },
                    //异常处理
                    error:function(data){
                        console.dir(data);
                        console.log('error');
                    }
                });
            });
        });
    </script>

http://www.niftyadmin.cn/n/855659.html

相关文章

less环境搭建及VScode使用less(详细教程)

less安装步骤 1、下载安装node.js 2、下载安装less 3、打开VScode软件安装插件 Easy LESS 4、编辑保存.less文件&#xff0c;会在对应的目录下生成对应的.css文件 下载安装node.js node.下载地址&#xff1a;https://nodejs.org/en/ 首先打开node.js网址&#xff0c;点击下载…

前端超级实用的几个主流框架

一、Bootstrap框架 Bootstrap官网及下载网站: https://www.bootcss.com/ Bootstrap实用功能: 大部分网页样式&#xff08;导航栏&#xff0c;图片&#xff0c;按钮&#xff0c;表单&#xff09;&#xff0c;栅格系统&#xff0c;轮播图&#xff0c;下拉菜单 等等 Bootstrap简…

vue学习记录:mvc与MVVM区别、vue的安装、v-cloak、v-text、v-html用法、v-bind及v-on用法

什么是Vue.js Vue是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;方便与第三方库或既有项目整合。 后端的 MVC 与 前端中的 MVVM 之间的区别 MVC : 是后端的分层…

基于Vue实现标签的字体滚动

实现思路&#xff1a; 通过截取数据第一个字符&#xff0c;把它拼接到最后&#xff0c;通过定时器实现滚动效果&#xff0c;在vue中&#xff0c;当你更新data数据时&#xff0c;网页会自己帮你更新网页中的数据。 实现代码 <!DOCTYPE html> <html><head>&…

vue学习记录:事件修饰符、v-model、Class 与 Style 绑定

一、vue.js事件修饰符 .stop 阻止冒泡.prevent 阻止默认行为.self 实现只有点击当前元素时候&#xff0c;才会触发事件处理函数.capture 实现捕获触发事件的机制.once 只触发一次事件处理函数 <div id"app"><!-- 使用 .stop 阻止冒泡 --><div clas…

vue学习记录:v-for使用及v-if和v-show用法及区别

v-for:遍历数组、数组对象、对象、迭代数字 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv&…

ES6语法学习笔记

let 命令 基本用法: 1.先定义后使用 let a 0; console.log(a);//a02.代码块内有效 let在{}内部定义的变量&#xff0c;在外部是不可以访问的&#xff0c;而var 定义的变量是在全局范围内有效: {let a 0;var b 1; } console.log(a);//ReferenceError: a is not defined co…

[转载]YAHOO的性能分析工具YSlow

YAHOO的性能分析工具YSlow Published by 小马 七月 25th, 2007. YSlow 是YAHOO提供的性能分析工具&#xff0c;它会分析页面加载的所有内容&#xff0c;然后根据加速站点的13条军规来给站点页面评分并给出建议。另外还集成了一些小工具。详细请见 YSlow官方站点。 淘宝首页的得…