问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Ajax为什么能解决跨域

发布网友 发布时间:2022-04-27 13:24

我来回答

2个回答

懂视网 时间:2022-05-02 07:18

原文发布时间为:2008-10-24 —— 来源于本人的百度文章 [由搬家工具导入]

我用的是AjaxPro.2.dll,然后我想点击那个 “无刷新更新” 那个按钮,实现 无刷新 修改表中的内容

HTML code <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>无标题页</title> <script type="text/javascript"> function gx() { var u=document.getElementById("TextBox1").value; var p=document.getElementById("TextBox2").value; var s=document.getElementById("TextBox3").value; Default2.gengxin(u,p,s,callback); } function callback(res) { if(res.value==true)
      {
          alert('提交成功');         
          document.getElementById("Button2").disabled=false;
          document.getElementById("Button2").value="无刷新更新";
   }
      } </script></head><body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> <br /> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /> <br /> <asp:TextBox ID="TextBox3" runat="server" OnTextChanged="TextBox3_TextChanged"></asp:TextBox><br /> <br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="普通更新" /><br /> <br />          <input id="Button2" type="button" value="无刷新更新" onclick="this.disabled=true;this.value='正在提交当中';return gx()"/></div>
</form></body></html>C# code using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using AjaxPro;public partial class Default2 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(Default2)); } [AjaxPro.AjaxMethod] public bool gengxin(string u,string p,string s) { SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["testConn"].ConnectionString); conn.Open(); SqlCommand cmd = new SqlCommand("Proc_UpdateTest", conn); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] param = new SqlParameter[3]; param[0] = new SqlParameter("@user", SqlDbType.NChar, 10); param[0].Value = u; param[1] = new SqlParameter("@paper", SqlDbType.NChar, 10); param[1].Value = p; param[2] = new SqlParameter("@score", SqlDbType.NChar, 10); param[2].Value = s; foreach (SqlParameter Parameter in param) cmd.Parameters.Add(Parameter); cmd.ExecuteNonQuery(); //SqlCommand cmd = new SqlCommand("update Paper set paper='" +p + "',score='" + s+"' where user='" +u + "'",conn); //cmd.ExecuteNonQuery(); conn.Close(); return true; } protected void Button1_Click(object sender, EventArgs e) { gengxin(TextBox1.Text,TextBox2.Text,TextBox3.Text); } protected void TextBox3_TextChanged(object sender, EventArgs e) { }}

ajaxpro实现无刷新更新数据库【简单方法】

标签:.exe   c#   导入   set   .ajax   oid   string   exe   dtd   

热心网友 时间:2022-05-02 04:26

不仅仅是ajax,ajax只是异步通信方式,你用同步的方式也可以实现跨域。

所以和是不是ajax没毛线关系。

什么是跨域:

浏览器对于javascript的同源策略的*,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了.

上面提到的,同域的概念又是什么呢??? 简单的解释就是相同域名,端口相同,协议相同

jsonp:

jsonp 全称是JSON with Padding,是为了解决跨域请求资源而产生的解决方案,是一种依靠开发人员创造出的一种非官方跨域数据交互协议。

一个是描述信息的格式,一个是信息传递双方约定的方法。

jsonp的产生:

1.AJAX直接请求普通文件存在跨域无权限访问的问题,不管是静态页面也好.

2.不过我们在调用js文件的时候又不受跨域影响,比如引入jquery框架的,或者是调用相片的时候

3.凡是拥有src这个属性的标签都可以跨域例如<script><img><iframe>

4.如果想通过纯web端跨域访问数据只有一种可能,那就是把远程服务器上的数据装进js格式的文件里.

5.而json又是一个轻量级的数据格式,还被js原生支持

6.为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback 参数给服务端,

demo1:基于script标签实现跨域

举个例子:我在http://study.cn/json/jsonp/jsonp_2.html下请求一个远程的js文件

不通域的请求

被请求的数据,远程js的代码

这样就实现跨域成功了,因为服务端返回数据时会将这个callback参数(message)作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。

再写一个

Demo2: 基于script标签实现跨域

让远程js知道它应该调用的本地函数叫什么名字,只要服务端提供的js脚本是动态生成的就好了,这样前台只需要传一个callback参数过去告诉服务端,我需要XXX代码,于是服务端就会得到相应了.

例如 在http://study.cn/json/jsonp/jsonp_3.html页面请求 http://192.168.31.137/train/test/jsonpthree

上面说明了只要有src属性的都可以实现跨域请求,这个你应该清楚,当你引用某种js框架的时候不就是跨域了嘛,比如你引用谷歌juqery.js。

demo3:  基于jquery跨域

那么如何用jquery来实现我们的跨域呢???jquery已经把跨域封装到ajax上了,而且封装得非常的好,使用起来也特别方便

如果是一般的ajax请求:

jsonp形式的ajax请求:并且通过get请求的方式传入参数,注意:跨域请求是只能是get请求不能使用post请求

jsonp 传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)

jsonpCallback 自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名

这里回调函数就是success

基本上就是这些了,还有iframe标签img标签,都可以,一个是描述信息的格式,一个是信息传递双方约定的方法。这个就算是跨域吧,跨域也就是只是一种格式。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在公交车上实施扒窃,会受到怎样的处罚? 交通违法行为识别 公交车扒窃会如何处罚? 郑州鱼缸清洗找哪家公司做得比较好? 郑州有没有专业维修鱼缸,清洗鱼缸的? ...的鱼缸,放在办公室养些鱼水草之类的。郑州哪里有卖这样的鱼缸。_百... 我们公司想要定做个观赏鱼缸,不知道郑州哪家公司最专业? 谁知道郑州生态鱼缸定做哪家做的效果最好? 联想电脑启用无线功能的功能键? 笔记本电脑怎么连接网笔记本电脑怎样连接无线网 薏米炒后还能去湿气吗 听说薏米可以去湿气,那是要炒还是直接去超市买来泡热水喝? 薏米除湿需要炒吗′ 薏米除湿气需要炒熟吗 湿气重薏米需要炒熟吗 薏米祛湿用炒吗 weverse shop怎么退款 婚内出轨怎样判刑 婚内出轨有什么处罚 婚内出轨法律怎么处理? 有道云笔记iPad版能分享微博或朋友圈吗? ipad版 新浪微博怎么发送长微博啊,求解啊 ipad版的找你妹怎么分享到微博? ipad和手机能同步上微博吗? ipad上的微博为什么不能分享到微信?求解 用iPad蹬新浪微博,可以转发到微信里面吗? iPad上的视频怎样转发到微博上啊?谢谢! 为什么玩AVA卡,观看不卡,一玩就卡··· 介绍几个不卡的免费电影 免费的,更新快.而且不卡的电影网站 ajax怎么实现跨域 原生js实现ajax封装好怎么使用 使用jquery的ajax的jsonp类型跨域请求数据、始终获取不到返回数据呢_百... 用ajax怎么解决跨域的问题? javascript开发中jsonp跨域请求是什么意思?什么叫跨域?为什么用jsonp... jsonp跨域是通过js实现的吗 如何实现跨域?jsonp实现原理 jquery php ajax jsonp 跨域的问题 jsonp跨域请求怎么设 如何使用jsonp解决跨域问题 ajax跨域请求jsonp出现Uncaught SyntaxError,该如何解决? 想了解jsonp,怎么学习啊 什么是js的同源策略,jsonp跨域请求什么意思 JSONP怎样实现跨域 如何快速的练成六块腹肌? 怎样才能锻炼出六块腹肌? 六块腹肌怎么练 怎么练六块腹肌 六块腹肌怎么练成 离婚后发现对方婚内出轨怎么办?