【问题标题】:Uncaught SyntaxError: Invalid regular expression flags未捕获的 SyntaxError:无效的正则表达式标志
【发布时间】:2020-01-28 22:28:52
【问题描述】:

我听不懂, 我一定错过了什么..

在我看来,代码看起来不错

$(document).on("click", "#addo-0", function() {
    var file_data = $("#visual_image").prop("files")[0];   
    var form_data = new FormData();                  
    form_data.append("file", file_data)               
    $.ajax({
                url: "/add_file.php?table=visuals",
                dataType: "script",
                cache: false,
                contentType: false,
                processData: false,
                data: form_data,                         
                type: "post"
       })

而且它在完成这项工作的方式上运行良好.. 但我得到了这个讨厌的错误:

Uncaught SyntaxError: Invalid regular expression flags

我做错了吗?有什么想法吗?

【问题讨论】:

  • 我在任何地方都看不到正则表达式。错误在哪一行?
  • @Barmar 我得到了这个 VM2734:1 和这个 Uncaught SyntaxError: Invalid regular expression flags at p (jquery.min.js:2) at Function.globalEval (jquery.min.js:2) at文本脚本 (jquery.min.js:4) 在 Qb (jquery.min.js:4) 在 A (jquery.min.js:4) 在 XMLHttpRequest. (jquery.min.js:4)跨度>
  • 当我单击 VM2734:1 时,我的 php ajax 脚本的 print_r 下划线为红色。所以我想这与调用有关
  • 就是这样。文档说 将响应评估为 JavaScript 并将其作为纯文本返回。 因此,如果您有一个 success: 函数,它将接收该结果作为参数。但它无论如何都会评估它。
  • 将其更改为dataType: 'text'。它可能是基于响应的Content-type 的默认值。

标签: javascript jquery regex ajax


【解决方案1】:

dataType: 'script' 更改为dataType: 'text'。它期望响应是有效的 JavaScript,即使您不使用响应。

【讨论】:

  • 在这个问题上花了几个小时我真的很惭愧.....我不会删除它,它可能会帮助其他人
  • Barmar 在他的 cmets 中避开了它,但是由于在您取消 dataType 后问题仍然存在,这似乎表明端点正在将 Content-Type 放在它上面,这会导致 jQuery 自动评估作为脚本的响应。如果它不这样做,那么如果没有该选项,您将不会收到错误消息。将选项提供为“文本”会强制 jQuery 忽略服务器在内容类型上返回的内容。如果可能的话,您可能想调查该端点,看看您是否可以找到符合这些要求的任何内容,并确定是否有必要。 @Odjone
猜你喜欢
  • 2017-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
相关资源
最近更新 更多