ajax请求携带自定义请求头header(跨域和同域)

2023-05-16

1. ajax跨域请求(无cookie、无header)案例(java)

(1)启动一个java web项目,配置两个域名(host),czt.ming.com、czt.casicloud.com,java后端代码如下

注意:Access-Control-Allow-Origin

/**
	 * 
	    * @Title: getAjaxCross
	    * @Description: TODO(ajax请求,跨域)
	    * @param request
	    * @param response
	 */
	@RequestMapping(value ="/getAjaxCross",method= {RequestMethod.GET})
	public void getAjaxCross(HttpServletRequest request, HttpServletResponse response){
	    try {
	    	response.setCharacterEncoding("UTF-8");
	    	
	    	//设置允许多个域名允许跨域集合
	        String[] allowDomains = {"http://czt.casicloud.com", "http://czt.ming.com"};
	        Set allowOrigins = new HashSet(Arrays.asList(allowDomains));
	        String origin = request.getHeader("Origin");
	        if(allowOrigins.contains(origin)){
	            //设置允许跨域的配置:Access-Control-Allow-Origin: 响应头指定了该响应的资源是否被允许与给定的origin共享
	        	response.setHeader("Access-Control-Allow-Origin", origin);
	        }

		    //数据
		    Map<String, Object> resultMap = new HashMap<String, Object>();
		    resultMap.put("message", "ajax请求,跨域成功");
		    String result = JsonUtils.objectToJson(resultMap);
		    
			response.getWriter().write(result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
(2)前端页面代码如下:
		//4.ajax跨域
         function getCookieAjaxCross() {
             $.ajax({
                 type:"get", 
                 url:"http://czt.ming.com/xxx/xxx/xxx/getAjaxCross",
                 async:true,
                 data:{},
                 dataType: 'json',
                 success: function(data) {
                     console.log(data);
                 }
             });
         }
         getCookieAjaxCross();

(3)测试ajax跨域请求:
通过http://czt.casicloud.com/xxx/xxx访问页面,js触发ajax跨域请求http://czt.ming.com/xxx/xxx/xxx/getAjaxCross,前端和后台如果不按照代码中配置相应参数会报各种跨域错误;

2. ajax跨域请求获取和创建cookie案例(java)

(1)启动一个java web项目,配置两个域名(host),czt.ming.com、czt.casicloud.com,java后端代码如下:

注意:Access-Control-Allow-Credentials和Access-Control-Allow-Origin

/**
	 * 
	    * @Title: getCookieAjax
	    * @Description: TODO(ajax请求,跨域传递cookie)
	    * @param request
	    * @param response
	 */
	@RequestMapping(value ="/getCookieAjax",method= {RequestMethod.GET})
	public void getCookieAjax(HttpServletRequest request, HttpServletResponse response){
	    try {
	    	response.setCharacterEncoding("UTF-8");
	    	
	    	response.setHeader("Access-Control-Allow-Credentials", "true");
	    	//设置允许多个域名允许跨域集合
	        String[] allowDomains = {"http://czt.casicloud.com", "http://czt.ming.com"};
	        Set allowOrigins = new HashSet(Arrays.asList(allowDomains));
	        String origin = request.getHeader("Origin");
	        if(allowOrigins.contains(origin)){
	            //设置允许跨域的配置:Access-Control-Allow-Origin: 响应头指定了该响应的资源是否被允许与给定的origin共享
	        	response.setHeader("Access-Control-Allow-Origin", origin);
	        }
	        
	    	//获取cookie
	    	Cookie[] cookies = request.getCookies();
	    	
	    	//设置cookie
	    	Cookie cookie = new Cookie("access_token_ajax", UUID.randomUUID().toString());
	    	cookie.setPath("/");
	    	response.addCookie(cookie);
	    	
		    //数据
		    Map<String, Object> resultMap = new HashMap<String, Object>();
		    resultMap.put("cookies", cookies);
		    resultMap.put("message", "ajax请求,跨域传递cookie成功");
		    String result = JsonUtils.objectToJson(resultMap);
		    
			response.getWriter().write(result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
(2)前端页面代码如下:

注意:withCredentials和crossDomain(作用不明)

		//4.ajax跨域携带cookie和自定义请求头header
         function getCookieAjaxCross() {
             $.ajax({
                 type:"get", 
                 url:"http://czt.ming.com/industry/api/publishForeign/getCookieAjax",
                 async:true,
                 data:{},
                 dataType: 'json',
                 xhrFields: {
                     withCredentials: true // 发送Ajax时,Request header中会带上 Cookie 信息。
                 },
                 crossDomain: true, // 发送Ajax时,Request header 中会包含跨域的额外信息,但不会含cookie(作用不明,不会影响请求头的携带)
                 success: function(data) {
                     console.log(data);
                 }
             });
         }
         getCookieAjaxCross();

(3)测试ajax跨域请求获取和创建cookie:
通过http://czt.casicloud.com/xxx/xxx访问页面,js触发ajax跨域请求http://czt.ming.com/xxx/xxx/xxxx/getCookieAjax,前端和后台如果不按照代码中配置相应参数会报各种跨域错误;

3. ajax跨域请求,携带请求头header案例(java)

(1)启动一个java web项目,配置两个域名(host),czt.ming.com、czt.casicloud.com;
(2)ajax跨域携带请求头会发送两次请求,一次预检查请求(options),预检查请求通过之后才会进行真正的请求,所以java后台需要配置相应的跨域过滤器,如下:

import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 
    * @ClassName: CorsFilter
    * @Description: TODO(跨域请求过滤器)
    * @author clm
    * @date 2019年10月25日
    *
 */
public class CorsFilter implements Filter {
	@Override
	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
			throws IOException, ServletException {
		/*
		 * 跨域请求头服务端配置:
		 * 1.Access-Control-Allow-Origin:设置允许跨域的配置, 响应头指定了该响应的资源是否被允许与给定的origin共享
		 * 2.Access-Control-Allow-Credentials:响应头表示是否可以将对请求的响应暴露给页面(cookie)。返回true则可以,其他值均不可以。
		 * 3.Access-Control-Allow-Headers:用于预检请求中,列出了将会在正式请求的 Access-Control-Request-Headers 字段中出现的首部信息。(自定义请求头)
		 * 4.Access-Control-Allow-Methods:在对 预检请求的应答中明确了客户端所要访问的资源允许使用的方法或方法列表。
		 */
		
		HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
		HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
		//设置允许多个域名允许跨域集合
        String[] allowDomains = {"http://czt.casicloud.com", "http://czt.ming.com"};
        Set<String> allowOrigins = new HashSet<String>(Arrays.asList(allowDomains));
        String origin = httpRequest.getHeader("Origin");
        if(allowOrigins.contains(origin)){
            //设置允许跨域的配置:Access-Control-Allow-Origin: 响应头指定了该响应的资源是否被允许与给定的origin共享
        	httpResponse.setHeader("Access-Control-Allow-Origin", origin);
        }
        httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
		httpResponse.setHeader("Access-Control-Allow-Headers",
				"Origin, X-Requested-With, Content-Type, Accept, access-token");
		httpResponse.setHeader("Access-Control-Allow-Methods", "GET, PUT, DELETE, POST, OPTIONS");
		if (httpRequest.getMethod().equalsIgnoreCase("OPTIONS")) {
			httpResponse.setStatus(202);
			httpResponse.getWriter().close();
			return;
		}
		filterChain.doFilter(servletRequest, servletResponse);
	}

	@Override
	public void destroy() {
	}

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	}

}
web.xml中配置过滤器:

	<filter>
		<filter-name>CorsFilter</filter-name>
		<filter-class>xxx.xxx.xxx.xx.xxx.CorsFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>CorsFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
(3)java后台Controller代码:
/**
	 * 
	    * @Title: getPersonHeader
	    * @Description: TODO(跨域获取请求头)
	    * @param request
	    * @param response
	 */
	@RequestMapping(value ="/getPersonHeader",method=RequestMethod.GET)
	public void getPersonHeader(HttpServletRequest request, HttpServletResponse response){
	    try {
	    	response.setCharacterEncoding("UTF-8");

	    	String personHeader = request.getHeader("Access-Token");
	    	System.err.println("获取自定义请求头(Access-Token):" + personHeader);
	    	
		    //数据
		    Map<String, Object> resultMap = new HashMap<String, Object>();
		    resultMap.put("message", "跨域获取请求头成功");
		    resultMap.put("personHeader", personHeader);
		    String result = JsonUtils.objectToJson(resultMap);
			response.getWriter().write(result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
(4)前端页面代码如下:
		//同域前端设置自定义请求头,后端获取自定义请求头
         function getPersonHeader() {
             $.ajax({
                 type:"get", 
                 url:"/xxx/xxx/xxx/getPersonHeader",
                 async:true,
                 //ajax配置请求头方式,第一种
                 headers: {
                     "Access-Token":"Access-Token123456",//自定义请求头
                     "Content-Type":"application/json;charset=utf8"
                 },
                //ajax配置请求头方式,第二种
	            //beforeSend : function(request) {
	          //   request.setRequestHeader("Access-Token", "Access-Token123456");
	            //   request.setRequestHeader("Content-Type", "application/json;charset=utf8");
	            //}
                 data:{},
                 success: function(data) {
                     console.log(data);
                 }
             });
         }
         getPersonHeader();
         
       //跨域前端设置自定义请求头,后端获取自定义请求头
         function getPersonHeaderCross() {
             $.ajax({
                 type:"get", 
                 url:"http://czt.ming.com/xxx/xxx/xxx/getPersonHeader",
                 async:true,
                 headers: {
                     "Access-Token":"Access-Token123456",//自定义请求头
                     "Content-Type":"application/json;charset=utf8"
                 },
                 data:{},
                 crossDomain: true, // 发送Ajax时,Request header 中会包含跨域的额外信息,但不会含cookie(作用不明,不会影响请求头的携带)
                 success: function(data) {
                     console.log(data);
                 }
             });
         }
         getPersonHeaderCross();

(5)测试ajax跨域请求携带请求头header:
通过http://czt.casicloud.com/xxx/xxx访问页面,js触发ajax跨域请求http://czt.ming.com/xxx/xxx/xxxx/getPersonHeader,前端和后台如果不按照代码中配置相应参数会报各种跨域错误;

3. jsonp实现跨域读写cookie案例(java)

(1)启动一个java web项目,配置两个域名(host),czt.ming.com、czt.casicloud.com;

(2)java后台jsonp代码:
	/**
	 * 
	    * @Title: setCookie
	    * @Description: TODO(jsonp跨域设置cookie)
	    * @param request
	    * @param response
	 */
	@RequestMapping(value ="/setCookie.jsonp",method=RequestMethod.GET)
	public void setCookie(HttpServletRequest request, HttpServletResponse response){
	    try {
	    	response.setCharacterEncoding("UTF-8");
	    	
	    	//设置cookie
	    	Cookie cookie = new Cookie("access_token", UUID.randomUUID().toString());
	    	cookie.setPath("/");
	    	response.addCookie(cookie);
	    	
		    //数据
		    Map<String, Object> resultMap = new HashMap<String, Object>();
		    resultMap.put("cookie", cookie);
		    resultMap.put("message", "跨域设置cookie成功");
		    String result = JsonUtils.objectToJson(resultMap);
		    
		    //前端传过来的回调函数名称
		    String callback = request.getParameter("callback");
		    //用回调函数名称包裹返回数据,这样,返回数据就作为回调函数的参数传回去了
		    result = callback + "(" + result + ")";
			response.getWriter().write(result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 
	    * @Title: getCookie
	    * @Description: TODO(jsonp跨域获取cookie)
	    * @param request
	    * @param response
	 */
	@RequestMapping(value ="/getCookie.jsonp",method=RequestMethod.GET)
	public void getCookie(HttpServletRequest request, HttpServletResponse response){
	    try {
	    	response.setCharacterEncoding("UTF-8");

	    	//获取cookie
	    	Cookie[] cookies = request.getCookies();
	    	
		    //数据
		    Map<String, Object> resultMap = new HashMap<String, Object>();
		    resultMap.put("cookies", cookies);
		    resultMap.put("message", "跨域获取cookie成功");
		    String result = JsonUtils.objectToJson(resultMap);
		    
		    //前端传过来的回调函数名称
		    String callback = request.getParameter("callback");
		    //用回调函数名称包裹返回数据,这样,返回数据就作为回调函数的参数传回去了
		    result = callback + "(" + result + ")";
			response.getWriter().write(result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
(3)前端代码:
 		 //1.jsonp跨域设置cookie
         function setCookieCrossJsonp() {
             $.ajax({
                 type:"get", 
                 url:"http://czt.ming.com/industry/api/publishForeign/setCookie.jsonp",
                 async:true,
                 data:{},
                 dataType: "jsonp",  //返回类型为jsonp,实现跨域
                 jsonp:"callback",   //jsonp和jsonpCallBack相当于在url后添加一个参数:?callback=back
                 jsonpCallback:"back",   //设定回调函数的名字,传到后台,进行包装,不设定自动生成
                 success: function(data) {   //成功执行处理,对应后台返回的back(data)方法
                     console.log(data);
                 }
             });
         }
         setCookieCrossJsonp();
         
       //2.jsonp跨域获取cookie
         function getCookieCrossJsonp() {
             $.ajax({
                 type:"get", 
                 url:"http://czt.ming.com/industry/api/publishForeign/getCookie.jsonp",
                 async:true,
                 data:{},
                 dataType: "jsonp",  //返回类型为jsonp,实现跨域
                 jsonp:"callback",   //jsonp和jsonpCallBack相当于在url后添加一个参数:?callback=back
                 jsonpCallback:"back1",   //设定回调函数的名字,传到后台,进行包装,不设定自动生成
                 success: function(data) {   //成功执行处理,对应后台返回的back(data)方法
                     console.log(data);
                 }
             });
         }
         getCookieCrossJsonp();

(4)测试jsonp跨域请求获取和创建cookie:
通过http://czt.casicloud.com/xxx/xxx访问页面,js触发jsonp跨域请求http://czt.ming.com/xxx/xxx/xxxx/getCookie.jsonp、http://czt.ming.com/xxx/xxx/xxxx/setCookie.jsonp,能够正常跨域设置cookie和获取cookie;

ajax请求携带cookie、自定义header总结:

错误:

1.ajax请求时是不会自动带上cookie的,要是想让他带上的话,必须设置withCredential为true。

正确:
  1. ajax同域请求下,ajax会自动带上同源的cookie;

  2. ajax同域请求下,ajax添加自定义请求头(或原装)header,前端、后台不需要增加任何配置,
    并且不会因为增加自定义请求头header,而引起预检查请求(options);

  3. ajax跨域请求下,如果不需要携带cookie、请求头header,只需要在后台配置相应参数即可;
    后台参数:
    (1).Access-Control-Allow-Origin:设置允许跨域的配置, 响应头指定了该响应的资源是否被允许与给定的origin共享;

  4. ajax跨域请求下,ajax不会自动携带同源的cookie,需要通过前端配置相应参数才可以跨域携带同源cookie,后台配置相应参数才可以跨域返回同源cookie;
    前端参数:
    withCredentials: true(发送Ajax时,Request header中会带上Cookie信息)
    后台参数:
    (1).Access-Control-Allow-Origin:设置允许跨域的配置, 响应头指定了该响应的资源是否被允许与给定的origin共享;
    特别说明:配置了Access-Control-Allow-Credentials:true则不能把Access-Control-Allow-Origin设置为通配符*;
    (2).Access-Control-Allow-Credentials:响应头表示是否可以将对请求的响应暴露给页面(cookie)。返回true则可以,其他值均不可以。

  5. ajax请求任何时候都不会带上不同源的cookie(Cookie遵循同源策略);

  6. ajax跨域请求下,ajax添加自定义或者原装的请求头,请求会发送两次,第一次预检查请求,第二次正常请求,详细描述:
    post(或GET)跨域请求时,分为简单请求和复杂请求,跨域携带自定义或者原装请求头头时是复杂请求。
    复杂请求会先发送一个method 为option的请求,目的是试探服务器是否接受发起的请求. 如果服务器说可以,再进行post(或GET)请求。
    对于java后台web应用,跨域需要添加一个过滤器(过滤器详见下面案例代码),这个过滤器做的事就是,加了几个http header在返回中,
    Access-Control-Allow-Origin 我能接受的跨域请求来源,配置主机名
    Access-Control-Allow-Headers 表示能接受的http头部,别忘了加入你自己发明创造的头部
    Access-Control-Allow-Methods 表示能接受的http mothed ,反正就那几种,全写上也无妨,猥琐点就只写 post, options
    如果是OPTION返回空,设置返回码为202,202表示通过。
    需要前端配置相应参数才可以跨域携带请求头,后台配置相应参数进行跨域携带请求头;
    前端参数:
    crossDomain:true(发送Ajax时,Request header 中会包含跨域的额外信息,但不会含cookie(作用不明,不会影响请求头的携带))
    后台参数(配置预检查过滤器):
    (1)Access-Control-Allow-Origin:设置允许跨域的配置, 响应头指定了该响应的资源是否被允许与给定的origin共享;
    (2)Access-Control-Allow-Credentials:响应头表示是否可以将对请求的响应暴露给页面(cookie)。返回true则可以,其他值均不可以;
    (3)Access-Control-Allow-Headers:用于预检请求中,列出了将会在正式请求的 Access-Control-Request-Headers 字段中出现的首部信息。(自定义请求头);
    (4)Access-Control-Allow-Methods:在对预检请求的应答中明确了客户端所要访问的资源允许使用的方法或方法列表;

亲测小结论:

1.ajax跨域请求下,后台不配置跨域Access-Control-Allow-Origin,同样能够执行后台方法,但是无法执行ajax的success的方法,控制台报跨域错误;
2.ajax跨域请求下,前端配置withCredentials: false,同样能够执行后台方法,但是无法携带同源cookie,后台无法获取;
3.ajax跨域请求下,前端配置withCredentials: true,后端没有配置Access-Control-Allow-Credentials:true,同样能够执行后台方法,并能够生成cookie并返回浏览器,但是无法执行ajax的success的方法,控制台报跨域错误;
4.ajax跨域请求下,前端配置withCredentials: false或不配置withCredentials,后端配置Access-Control-Allow-Credentials:true或者false,同样能够执行后台方法,并能够生成cookie并返回浏览器,但是无法携带同源cookie,能够执行ajax的success的方法;
5.Cookie携带只区分域名,不区分端口;
6.jsonp可以携带cookie,但只能携带所属域名的cookie(同源策略);
7.jsonp可以跨域生成cookie,流程如下:跨域请求之后,在服务器端生成cookie,并在浏览器端记录相应的cookie;
8.静态资源同样会携带cookie(js和图片等),但是如果是和当前页面不同域只是在network中不显示cookie选项,但是后台能够获取到对应cookie;
9.ajax同域请求会自动带上同源的cookie,不会带上不同源的cookie;
10.这是MDN对withCredentials的解释: MDN-withCredentials ,我接着解释一下同源。
众所周知,ajax请求是有同源策略的,虽然可以应用CORS等手段来实现跨域,但是这并不是说这样就是“同源”了。ajax在请求时就会因为这个同源的问题而决定是否带上cookie,这样解释应该没有问题了吧,还不知道同源策略的,应该去谷歌一下看看。

总结:最好前端后台配置跨域,则同时配置相应的跨域配置,否则总会出现不可控的错误;

参考博客:
1.ajax如何带上cookie:
2.跨域请求设置withCredentials(转):
3.Ajax 带请求头header的get、post请求在原生JS中应用讲解:
4.ajax请求携带 cookie:
5.ajax跨域 自定义header:
6.ajax 自定义header跨域时, option的处理:
7.JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案:
8.跨域请求及跨域携带Cookie解决方案:
9.Access-Control-Allow-Methods:
10.Access-Control-Allow-Origin:
11.Access-Control-Allow-Credentials:
12.ajax请求中自定义添加请求头:
13.jsonp cookie 跨域原理详解:
14.jsonp实现跨域读写cookie:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ajax请求携带自定义请求头header(跨域和同域) 的相关文章

  • jqgrid删除:没有获取值

    我使用 JSP 和 Servlet IDE Eclipse 数据库 Oracle10 开发 Web 应用程序 我在用JQGRID以表格格式显示数据 我还想要添加 编辑 删除的功能JQGRID 到目前为止我已经完成了编辑功能 现在我想要Del
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 基于mysql表中唯一电子邮件地址的唯一代码?

    我有一个 mysql 表 它将存储用户电子邮件地址 每个地址都是唯一的 并且是主字段 和时间戳 我添加了另一列名为 unique code varchar 64 utf8 unicode ci 我非常感谢您提供的帮助 a 生成5位字母数字代
  • 如何通过单击浏览器的后退按钮获得相同的页面

    我在我的 aspx 页面中使用 asp net 和 c 我在这个面板中有一个更新面板 我有一些到其他站点的链接 这些链接在同一窗口中打开 单击这些链接后 当我通过浏览器的后退按钮返回时 我在更新面板上没有得到相同的结果 我已经与以下文章实现
  • .trigger 函数的回调

    我有以下代码 scheduleLink trigger click alert text 这是点击处理程序 scheduleLink bind click function loadScheduleEvent wrap tabs find
  • 使用请求登录具有 javascript 登录表单的网站

    首先我要说的是我的编程经验很少 在过去几天尝试编写这个程序时 我学到了很多东西 我正在 Windows 7 上使用 PyCharm requests Beautiful Soup 和 lxml 运行 Python 2 7 我正在尝试从一个严
  • 如何格式化 Microsoft JSON 日期?

    我正在第一次尝试Ajax http en wikipedia org wiki Ajax 28programming 29使用 jQuery 我正在将数据传输到页面上 但在处理为日期数据类型返回的 JSON 数据时遇到了一些问题 基本上 我
  • 尝试创建具有正确行标题的 JTable

    我正在尝试创建一个 JTable 它的行标题看起来就像列标题 但我在它上面花费了太多时间 我的情况和这个问题类似 JTable 行标题实现 https stackoverflow com questions 1434933 jtable r
  • IE8 上的 FormData ajax 上传 -> 替代方案及其工作原理

    我想用ajax上传图片 所以我使用FormData 但它不适用于IE8 我查了一下 发现不能在 IE8 中使用 FormData 但我没有发现可以使用任何东西来使其在 IE8 和其他浏览器上工作 有人可以告诉我该怎么做以及如何做吗 我尝试提
  • Razor 页面 - CSS 隔离 - 某些 HTML 标签的样式不起作用

    我正在尝试使用 Razor Pages CSS 隔离在 ASP NET Web 应用程序中设置正文 标题和表单标签的样式 在作用域 CSS 文件 Layout cshtml css 中为某些 HTML 标记创建的样式不起作用 其他组件文件也
  • 防止在 AJAX 请求上发送 Cookie

    我有一个从脚本调用的 Web 服务 但不需要存储在 cookie 中的任何信息 每当我向服务发出请求时 cookie 都会随之发送 我知道默认情况下 cookie 是通过 HTTP 请求发送的 但是有什么方法可以覆盖该行为而不发送 cook
  • jQuery Ajax 调用在 IE 中非常慢,但在 Firefox 中却很快

    我正在执行 jQuery ajax 返回一个调用List
  • Laravel 中无效后防止重定向到主页

    我正在使用 Laravel 5 3 开发 RESTful API 因此我正在使用我的控制器测试一些功能和请求 我需要做的一件事是在数据库中添加字段之前验证用户发送的请求 因此 我使用自定义 FormRequest 来验证它 当我在 Post
  • 使用 jQuery 异步加载图像

    我想使用 jQuery 在我的页面上异步加载外部图像我尝试过以下方法 ajax url http somedomain com image jpg timeout 5000 success function error function r
  • 当要阻止的组件通过 AJAX 更新时,PrimeFaces 阻止 UI 不起作用

    我已经在中显示了一些组件
  • 提交ajax表单并停留在同一页面不起作用

    我想将用户的评论存储在我的数据库中 当用户提交时 我不想将他们重定向到新页面 我有以下代码 但它不起作用 我的 HTML 代码
  • 如何获取 XML 文档的innerHTML(AJAX)?

    AJAX 查询后 返回一个 XML 文件 我能够 解析 该文件 但是当涉及到获取元素的 innerHTML 或在本例中为 innerXML 时 问题就出现了 如果 XML 元素 比方说 内容 仅包含我可以执行的操作 content chil
  • 如何在同一视图中渲染两个分页且可 ajax 的集合?

    在 Rails 3 2 索引视图中 我正在渲染两个部分 并且在部分 Show some fields 分页不起作用 如果我改变will paginate要获取实例变量 分页可以工作 但是集合错误 当调用部分时 如何将
  • 在长时间 Ajax 调用期间显示进度

    我有一个简单的网站 http www kousenit com twitterfollowervalue http www kousenit com twitterfollowervalue 根据一个人的 Twitter 关注者计算数量 由
  • 如何使用ckeditore通过ajax发送数据?

    我在 django 中有一个表格 这是 撰写邮件 形式 我将此表单从视图发送到我的模板 然后应用 ckeditor 来更改正文样式 我希望通过 ajax 发布此表单 当使用 ckeditor 时 body 字段的值不会随 request P

随机推荐