Javascript 使用$.ajax({dataType:';script';})时,请求只发出一次

Javascript 使用$.ajax({dataType:';script';})时,请求只发出一次,javascript,jquery,ajax,yii2,Javascript,Jquery,Ajax,Yii2,我试图使用$.ajax({dataType:'script'})从服务器加载动态js,但请求仅在第一次尝试时触发(我从浏览器控制台运行它们) 基本上,此脚本是在url/test/script/上动态生成的: 警报(“测试”); 然后我从浏览器运行: $.ajax({ url:“/test/script/”, 数据类型:“脚本”, 键入:“POST”, }); 并发出警报 第二次尝试时,由于某种原因没有发出HTTP请求,并且$的statusText。ajax返回值为“已取消”。为什么第二次不起

我试图使用
$.ajax({dataType:'script'})
从服务器加载动态js,但请求仅在第一次尝试时触发(我从浏览器控制台运行它们)

基本上,此脚本是在url
/test/script/
上动态生成的:

警报(“测试”);
然后我从浏览器运行:

$.ajax({
url:“/test/script/”,
数据类型:“脚本”,
键入:“POST”,
});
并发出
警报

第二次尝试时,由于某种原因没有发出HTTP请求,并且
$的
statusText
。ajax
返回值为
“已取消”
。为什么第二次不起作用呢?

请像@charlietfl说的那样做

在任何地方,我都会给出两个可能的问题来检查:

  • 您使用chrome控制台,因此禁用CORS。Exceute在管理模式下chrome.exe--禁用web安全--禁用gpu--用户数据目录=~/chromeTemp
  • 在$.ajax选项中添加缓存:true。因为默认值为false,并且它附加了一个随机参数。这是同一个缓存false和true

    • 请像@charlietfl说的那样做

      在任何地方,我都会给出两个可能的问题来检查:

      • 您使用chrome控制台,因此禁用CORS。Exceute在管理模式下chrome.exe--禁用web安全--禁用gpu--用户数据目录=~/chromeTemp
      • 在$.ajax选项中添加缓存:true。因为默认值为false,并且它附加了一个随机参数。这是同一个缓存false和true


      好的,我就猜到了这个

      基本上,问题是我在使用Yii2。
      它在
      yii.js
      文件中有自己的jQuery配置,基本上,缓存类型为
      'script'
      的ajax请求。因此,除非我设置
      yii.reloadableScripts=['',…]
      ,否则类型为
      'script'
      的ajax请求只会触发一次。

      好的,所以我计算了这个

      基本上,问题是我在使用Yii2。
      它在
      yii.js
      文件中有自己的jQuery配置,基本上,缓存类型为
      'script'
      的ajax请求。因此,除非我设置了
      yii.reloadableScripts=['',]
      ,否则类型为
      'script'
      的ajax请求只会触发一次。

      为什么要对
      脚本发出post请求?提供一种我正在模拟rails的方式,为POST请求发出javascript响应。基本上,
      POST/foo/update
      使用一些数据,获取
      $(“#foo”).replacetwith(updatedTemplate)
      作为响应。您到底想实现什么?您是否试图通过发送ajax调用来响应某些javascript代码,然后尝试运行或插入文档?为什么要对
      script
      发出post请求?提供一种我正在模拟rails的方式,为POST请求发出javascript响应。基本上,
      POST/foo/update
      使用一些数据,获取
      $(“#foo”).replacetwith(updatedTemplate)
      作为响应。您到底想实现什么?您是否试图通过发送ajax调用来响应某些javascript代码,然后尝试运行或插入到文档中?但是,据我所知,不要考虑更改它,因为它将开始加载您的脚本两次,并将抛出错误。但是不要考虑更改它,因为它将开始加载您的脚本两次,并将抛出错误,据我所知。
      数据类型:“script”
      通过向URL追加一个查询字符串参数
      .=[TIMESTAMP]
      ,禁用缓存,除非缓存选项设置为
      true
      @MuhammadOmerAslam感谢您澄清jquery为什么添加该参数
      数据类型:“script”
      通过向URL追加查询字符串参数
      .=[TIMESTAMP]
      禁用缓存,除非缓存选项设置为
      true
      @MuhammadOmerAslam感谢您澄清jquery添加该参数的原因