【问题标题】:Inject callback function in the JSON string in jquery ajax call在jquery ajax调用中的JSON字符串中注入回调函数
【发布时间】:2015-10-30 01:12:49
【问题描述】:

我有 jquery ajax 调用,它将转到 .js 文件并返回 JSON

var validate = function () {
    alert('test string');
}

$.ajax({
        url: "JS/JQB/SampleData/Filters.js",
        async:false,
        success: InitailiseJQB
    });

Filters.js 文件包含以下 JSON,

  [{
        "id": "Group",
        "filters": [{
            "id": "49be7d78-4dcf-38ab-3733-b4108701f1",            
            "validation": {
                "callback": validate
            }
        }]
}]

在上面的 JSON 验证中是 javascript function 但问题是当我使用 ajax 调用请求 JSON 时,它会抛出名为 JavaScript runtime error: Invalid character 的运行时错误

【问题讨论】:

  • 这不是有效的 JSON。 JSON 属性子句的右侧可以是字符串、数字、JSON 数组、JSON 对象、truefalsenull
  • @Pointy 但如果我删除 ajax 调用并将其放入变量中,那么它将用我提供的函数替换验证,并且一切正常。
  • 您可以在从脚本请求 JSON 时添加参数数据类型:“JSON”
  • 用一些已知的有效 JSON 尝试你的脚本,看看它是否有效。你会在这里找到很多。
  • @user1655222 一种选择是使用函数的名称(字符串)进行响应——{ "callback": "validate" }。从该名称引用函数的一种简单方法是 store it as a method。示例:jsfiddle.net/xtz9w6k5

标签: javascript jquery html jquery-callback


【解决方案1】:

成功后,您确定要调用:

success: InitailiseJQB

那里可能有意外的拼写错误。

【讨论】:

  • 正如我所说,如果我在 validate 而不是函数中放置一个字符串,它工作正常
猜你喜欢
  • 1970-01-01
  • 2021-08-13
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多