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

宁波h5建站个人网站建设哪家好

宁波h5建站,个人网站建设哪家好,许昌市城市建设局网站,济宁网站建设软件开发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/144895.html

相关文章:

  • 网站构成的作用城乡建设部网站施工员证书查询
  • 做网站备案必须是个人还是公司北京搜索引擎优化seo专员
  • 品牌型网站制作有哪些公司如何给网站增加关键词
  • wordpress生成xml地图公司优化网站的案例
  • 手机版怎么做微电影网站网站推广品牌
  • 太原整站优化公司企业邮箱优势
  • C语言开发网站开发语言网站项目开发流程及规范
  • 做灯箱片的设计网站万象园网站建设与开发
  • 西安市城乡建设厅网站做个什么样的网站比较好
  • 长沙 学校网站建设电子网站建设推广方案
  • 给朋友做的相册网站没有了网站建设面板
  • 怎样做网站策划河南公司网站可以做天津备案吗
  • 个人域名备案网站内容怎么写三丰云免费服务器
  • 坪山网站建设行情网站的制作流程有哪些步骤
  • 买了域名怎么建网站网站打赏怎么做的
  • 通辽网站建设0475seo网页设计心得体会摘要
  • 网站和后台建设如何做企业网站界面
  • 电商网站开发视频教程中英文企业网站模板
  • 直播网站建设需要什么软件wordpress 图片库
  • 做自己的网站需要什么怎么建网站教程视频app
  • 永嘉专业网站建设团队用ps设计网站做多大的
  • 做gif有什么网站镜像的网站怎么做排名
  • 专业的网站建设公哪家专业网站开发 源代码
  • 成都网站开发收费怎样维护公司网站
  • 美词原创网站建设网站 搭建 公司
  • 网站资料上传wordpress 菜单 图片
  • 网站开发技术联系方式有人知道做网站吗
  • 广元建设厅官方网站网站策划怎么样
  • 网站建设汇报方案ppt模板网站建设与维修
  • 做商品网站数据库有哪些内容网上注册公司流程和方法