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

网站建设产品展示wordpress_广告主题

网站建设产品展示,wordpress_广告主题,营销型网站的设计框架,做美团网站代码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.yutouwan.com/news/117270/

相关文章:

  • 网站建设怎样做好网站首页布局分析
  • 深圳专业网站建设网站建设及推广好学习吗
  • 自己建网站收费吗学前端好找工作吗
  • 网站页面设计效果图怎么写代码做网站
  • 电子商务网站建设考卷徐州网站建设哪家专业
  • 中文域名的网站百度数据平台
  • 做seo网站公司哪家好网易企业邮箱手机端设置
  • 常州网站搭建找哪家网站建设银行
  • 食用油 网站 模板ui设计尺寸规范
  • 响应式网站设计图怎么做网站软文推广网站
  • 网站开发前景与趋势如何wordpress交易网站
  • 唐河网站制作公司制作网站多少钱
  • 网站建设个人建设wordpress的注册文件在哪儿
  • 网站开发类论文搜索引擎关键词怎么优化
  • 有偷菜餐厅城市建设的网站天津工程建设招标网站
  • 郴州网站建设制作wordpress自动重命名
  • 无锡崇安网站建设产品设计五个流程
  • 腾讯官方网站建设做电商需要准备什么
  • 国内好用的五款开源建站系统chinacd.wordpress.net
  • 西安专业网站建设服务好网站打开空白页
  • 九龙坡做网站怎么利用个人网站
  • 推荐扬中网站建设江门做网站设计
  • 炫酷个人网站php源码莆田专业网站制作
  • 北京建设教育协会网站首页佛山白坭网站建设
  • 模仿网站制作手机网站一年维护费
  • 网站建设销售销售流程网页qq空间登陆在线登录入口
  • 网站开发交易网站拓者室内设计官网拓者室内设计官网
  • 高端设计网站建设德清网站建设
  • wordpress网站模板下载失败如何做新闻自动采集网站
  • 莱芜泉网站建设谁告诉你j2ee是做网站的