本篇文档主要介绍了如何使用JavaScript (JS) 与Ajax技术实现跨域访问后台服务器。在现代Web开发中,由于浏览器的同源策略限制(CORS),JavaScript通常无法直接与不同域名下的服务器进行通信。然而,通过特定的处理方式,我们可以解决这一问题。 首先,文档引用了jQuery库版本1.8.1和1.10.2,这是因为jQuery提供了一套丰富的API,简化了Ajax请求的编写,包括处理异步数据交互。AJAX (Asynchronous JavaScript and XML) 是一种在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术。 跨域访问涉及到的主要知识点有: 1. **JSONP (JSON with Padding)**:当目标服务器允许跨域请求且只支持GET方法时,可以利用JSONP技术,通过动态创建`<script>`标签来执行远程脚本,从而绕过同源策略获取数据。但这种方法对于POST等其他HTTP方法并不适用。 2. **CORS (Cross-Origin Resource Sharing)**:这是更现代、更安全的跨域解决方案,它允许服务器明确指定哪些来源(origin)可以访问其资源。客户端(如浏览器)在发起跨域请求时,会携带`Origin`头,服务器可以通过检查这个头来决定是否响应。 3. **服务器端代理**:如果后端服务器支持,可以在服务器端设置一个代理,即通过后端转发请求到目标服务器,再将结果返回给前端。这种方式需要后端的支持,但可以处理所有类型的HTTP请求。 文档中的代码片段展示了使用BootstrapValidator库来验证表单输入,这有助于用户输入验证,而跨域访问的实现并未在这一部分展示。然而,为了实现跨域POST请求,可能需要结合服务器端的响应头部配置(如设置`Access-Control-Allow-Origin`和`Access-Control-Allow-Methods`等),或者借助代理服务。 总结来说,要实现JS跨域访问后台,开发者需要了解并灵活运用JSONP、CORS或后端代理等技术,并根据实际情况选择合适的方法。同时,确保前端验证功能正常运行,以提供良好的用户体验。在实际操作中,需要根据具体的安全性和性能需求,对这些策略进行调整和优化。
客户端页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>download</title>
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
<link rel="stylesheet" href="css/bootstrap.css" />
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/bootstrapValidator.js"></script>
<script type="text/javascript">
$(document).ready(
function() {
$('#defaultForm') //校验表单是否为空
.bootstrapValidator(
{
// live: 'disabled',
message : 'This value is not valid',
feedbackIcons : {
valid : 'glyphicon glyphicon-ok',
invalid : 'glyphicon glyphicon-remove',
validating : 'glyphicon glyphicon-refresh'
},
fields : {
type : {
notEmpty : {
message : 'The type is required and cannot be empty'
}
}
},
vendor : {
validators : {
notEmpty : {
message : 'The vendor is required and cannot be empty'
}
}
},
protocol : {
validators : {
notEmpty : {
message : 'The protocol is required and cannot be empty'
}
}
}
}
});
$('#defaultForm').bootstrapValidator('validate');//判断执行语句
$.fn.serializeObject = function() //form表单转换成json
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
剩余5页未读,继续阅读
- 粉丝: 190
- 资源: 86
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展