首页 > 解决方案 > 在 php 中包含 javascript 文件

问题描述

我有一个 html 文件(index.html),它通过 javascipt 调用一个 php 文件(pdj.php)并将输出填充到 div(pdj)中。这行得通。

$.ajax({
     url: '../command/pdj.php', 
     type: "POST",
     data: ({xparam: xparam}),
     success: function(data){
         var arraydata = $.parseJSON(data);          
      $("#pdj").html(arraydata[0]); 
     }
});  

php 文件需要一个 javascript 文件 (spinner.js) 才能工作。

1)在index.html中添加javascipt文件不使用。

2) 包含在 pdj.php 中会导致错误 include_once('spinner.js');

Uncaught SyntaxError: Unexpected token / in JSON at position 1
    at Function.parse [as parseJSON] (<anonymous>)
    at Object.success (pdj.js:40)
    at fire (jquery-3.3.1.js:3268)

我猜我的 ajax 调用是错误的......你能建议如何解决这个问题吗?

提前致谢

标签: javascriptphpajax

解决方案


你的ajax调用没有错。

1)在index.html中添加javascipt文件不使用。

这里的问题是,当执行 javascript 文件时,它找不到目标,因为尚未执行 ajax 调用,这意味着尚未为spinner.js.

2) 包含在 pdj.php 中会导致错误 include_once('spinner.js');

这里 include_once 只会将 javascript 文件的内容添加到响应中,这会导致 json 损坏,这就是 ajax 失败的原因,因为 content-typeapplication/json在你的 ajax 配置中设置为

解决方案是在 ajax 成功处理程序上调用spinner.js' 函数。

如果您可以提供 spinner.js 作为链接,那将是更好的答案。

$.ajax({
     url: '../command/pdj.php', 
     type: "POST",
     data: ({xparam: xparam}),
     success: function(data){
         var arraydata = $.parseJSON(data);          
         $("#pdj").html(arraydata[0]); 
         $("input[type='number']").inputSpinner();
     }
});  

推荐阅读