当前位置: 首页 > news >正文

安国市住房和城乡建设局网站宁波h5建站

安国市住房和城乡建设局网站,宁波h5建站,广西网站建设seo优化,莱芜论坛哪个比较好AJAX学习笔记7 AJAX实现省市联动_biubiubiu0706的博客-CSDN博客 跨域:指一个域名的网页去请求另外一个域名资源.比如百度页面去请求京东页面资源. 同源与不同源三要素:协议,域名,端口 协议一致,域名一致,端口一致.才算是同源.其他一律不同源 新建项目测试: 1.window.open();…AJAX学习笔记7 AJAX实现省市联动_biubiubiu0706的博客-CSDN博客 跨域:指一个域名的网页去请求另外一个域名资源.比如百度页面去请求京东页面资源. 同源与不同源三要素:协议,域名,端口 协议一致,域名一致,端口一致.才算是同源.其他一律不同源 新建项目测试: 1.window.open(); window.location.href; document.location.href; 是否可以直接跨域访问. 2.测试form action method表单是否可以跨域访问 3.测试引入JS资源是否可以跨域访问:script typetext/javascript src/script 4.测试img src/ 图片资源是否可以直接跨域访问 如里把C应用里的servlet拖到D应用里(搞错了) D应用用个简单Servlet接收 测试结果上面4中方式跨域没有问题 他们的特点好比在url地址栏上直接访问 测试AJAX请求,发起跨域请求行不行 从C应用发送AJAX请求到D应用 前端 后端 跨域问题的根本原因在于浏览器内存中,两个站点不能共享同一个XMLHttpRequest,这话不一定对,,原因不安全 跨域问题发生的主要原因是浏览器执行了同源策略因此一个网页的JavaScript代码无法直接访问不同域的资源。这包括使用XMLHttpRequest或Fetch API发送Ajax请求时无法从一个域请求另一个域的数据。 跨域问题通常指的是浏览器限制了通过JavaScript发起的跨域请求这些请求虽然发送了但由于浏览器的同源策略Same-Origin Policy而被服务器拒绝 但是在微服务中,很多时候是需要跨域的 下面介绍解决方式: 1.服务器设置响应头,预检请求只是猜测   后面参数是允许的请求源 测试   可以访问 2.jsonp的方式:(json with padding)带填充的json 注意:jsonp不是一个真正的ajax请求.只不过可以完成局部刷新效果.是一种类似ajax请求的机制 jsonp不是ajax请求,但是可以完成局部刷新效果,并且可以解决跨域问题 jsonp事实上是依赖于 script srchttp://localhost:8081/d/ajax/js/jquery-3.4.1.js/script 这段引入JS文件的代码是可以跨域访问的 注意jsonp只支持Get请求跨域 好比C应用引入了D引用的JS 继续测试 后端返回方法调用,行不行? 测试,可以的 返回方法,方法内携带json数据行不行? 可以 能不能把方法变活,通过 script typetext/javascript srchttp://localhost:8081/d/jsonp?funhi/script标签传参数过去 后端只是传了字符串回去,真正的调用者是浏览器 上面代码可以看出来jsonp其实和ajax没半毛钱关系,ajax是依靠XMLHttpRequest对象的 而jsonp依靠与script typetext/javascript srchttp://localhost:8081/d/jsonp/script达到了和ajax差不多的效果 上面的代码,只是浏览器加载顺序,一步步执行,但是并没有达到局部刷新效果 有没有办法,比如页面上有一个按钮,当点击按钮时候执行 script typetext/javascript srchttp://localhost:8081/d/jsonp?funhi/script 去调用后端,返回可以让浏览器执行的JS字符串 来达到页面的局部刷新 测试 上面这样就不需要点击事件直接加载完就调用了 现在把点击事件加上 点击按钮后 用JQuery封装jsonp 引入JQuery文件  就是别人写的js脚本 data:传不传看需求 http://localhost:8081/d/jsonp2?callbackjQuery34105755191968251865_1693966302334usernameHI_1693966302335 callback说明是个回调函数 callbackjQuery34105755191968251865_1693966302334 是JQuery加上去的 3.代理机制(HttpClient) 使用Java程序怎么去发送get/post请求呢【GET和POST请求就是HTTP请求。】 第一种方案使用JDK内置的APIjava.net.URL.....这些API是可以发送HTTP请求的。(比较麻烦) 第二种方案使用第三方的开源组件比如apache的httpclient组件。httpclient组件是开源免费的可以直接用 在java程序中使用httpclient组件可以发送http请求。 对于httpclient组件的代码大家目前可以不进行深入的研究可以从网上直接搜。然后粘贴过来改一改看看能不能完成发送get和post请求。 使用httpclient组件需要先将这个组件相关的jar包引入到项目当中。 引入jar包 import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;/*** author hrui* date 2023/9/6 14:03*/ WebServlet(/) public class AServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}public static void main(String[] args) throws IOException {//使用Java代码发送HTTP get请求String urlhttp://localhost:8081/d/b;HttpGet httpGetnew HttpGet(url);//设置响应类型application/x-www-form-urlencoded application/jsonhttpGet.setHeader(Content-type,application/x-www-form-urlencoded);System.out.println(调用URL:httpGet.getURI());//httpClient实例化CloseableHttpClient aDefault HttpClients.createDefault();//执行请求并获取返回//CloseableHttpResponse response aDefault.execute(httpGet);HttpResponse response aDefault.execute(httpGet);System.out.println(返回的状态码:response.getStatusLine());HttpEntity entity response.getEntity();//显示结果BufferedReader readernew BufferedReader(new InputStreamReader(entity.getContent(), UTF-8));String linenull;StringBuffer stringBuffernew StringBuffer();while((linereader.readLine())!null){stringBuffer.append(line);}System.out.println(服务器响应的数据:stringBuffer);reader.close();aDefault.close();} }那么就是说C应用的资源页面发起访问C应用的AJAX请求,然后让C应用的后端访问D应用的后端且返回数据是可行的 上面讲的是原理过程 实际使用的代理机制 C应用前端访问C应用后端 C应用后端访问D应用后端 在D应用建个目标Servlet 4.Nginx反向代理,解决AJAX跨域问题 nginx反向代理中也是使用了这种代理机制来完成AJAX的跨域实现起来非常简单只要修改一个nginx的配置即可。 要解决通过Nginx处理Ajax请求的跨域问题可以使用Nginx的配置来设置CORS跨域资源共享头信息以允许跨域请求。以下是一些常见的方法 使用add_header指令 在Nginx配置中您可以使用add_header指令来添加CORS头信息。以下是一个示例配置 这个配置允许来自任何来源*的跨域请求并支持常见的HTTP方法GET、POST、OPTIONS。还定义了其他CORS相关的头信息。 使用Nginx的proxy_pass指令 如果您的Nginx服务器用于代理后端API服务器您也可以在proxy_pass指令中包含CORS头信息。以下是一个示例配置 这个配置允许代理后端服务器并添加CORS头信息以便处理跨域请求。 请注意这些示例配置中的Access-Control-Allow-Origin头信息设置为*这意味着允许来自任何来源的请求。根据您的需求您可以将其设置为特定的域名或IP地址。此外还可以根据需要自定义其他CORS头信息。 在配置Nginx之后确保重新加载Nginx配置以使更改生效。这可以通过运行nginx -s reload来完成。 这些是解决通过Nginx处理Ajax请求的跨域问题的一些方法。根据您的具体需求和架构您可以选择适合您情况的方法。
http://www.dnsts.com.cn/news/115577.html

相关文章:

  • 权威发布的图片重庆seo网站策划
  • 泉州公司建站模板网站建设网站模板
  • 在百度上做公司网站得多少钱html5 网站开发工具
  • 吴中区住房和城乡建设局网站网站的主流趋势
  • 没有网站怎么做cpa广告wordpress 域名更改
  • 长春建站模板评测金山快盘为什么停止服务
  • asp网站vps搬家中国设计网怎么样
  • 建设网站模板广东一站式网站建设费用
  • .net 免备案网站空间台州市住房和城乡建设厅网站
  • 石景山网站建设有哪些公司夏津网站开发
  • 查网站是什么公司做的甘肃兰州事件
  • 网站建设开发合同网站登录后不显示内容
  • 怎么建立购物网站全网有哪些网站可以做淘客
  • 网站的建设与管理网站的建设进度表
  • 浦东新区网站优化推广盐城哪家专业做网站
  • 德阳网站建设ghxhwl做网站模板用什么框架
  • 手机直接看的网站有哪些在线一键生成网页
  • 南昌网站建设公司电子商城网站开发支持手机端
  • js 取网站域名企业网站优化应该怎么做
  • 商城网站建设公司爱问宁波好品质品牌网站设计哪家好
  • 懂得网站推广做酒类直供网站行吗
  • 学校网站首页设计图片营销网站参考
  • 装修网站建设服务商跨境电商开发流程
  • 网站开发主管岗位职责十张优秀海报设计欣赏
  • 学风建设网站网站备案服务商
  • 色系网站.wordpress重置密码邮件
  • 网站内容告知书怎么做培训班网站
  • 旅游电子商务网站建设技术规范wordpress 图文插件
  • 凡科建站有哪些弊端天元建设集团有限公司官网首页
  • 做相册的网站 网易企业电子商务网站优化方案