AJAX函数必须在调用它们的同一文件中吗?

时间:2018-01-13 18:44:02

标签: php html ajax html5

我可以从JS文件中调用javascript函数而不会出现任何问题。当我将AJAX函数移动到同一个文件中时,无法调用这些函数。 AJAX函数是否要求它们与他们调用的文件相同?

Home.html中

<button onclick=scale(id)>scale</button>
<button onclick=save(id)>Save</button>

Javascript.js

function scale(id){
 //scales the element with the given id
 //works
}
function save(id){
//Does not work unless in Home.html file
 if(window.XMLHttpRequest){
  xmlhttp = new XMLHttpRequest();
 } else {
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "SaveValue.php?id="+id, true);
xmlhttp.send();

SaveValue.php

//Sends value to mysql db

-Update- 当我将AJAX函数单独移动到一个不同的JS文件中,并将其链接到html文件中时,一切正常。

1 个答案:

答案 0 :(得分:0)

执行Ajax选项的JavaScript函数与加载它们时的任何其他函数没有区别。

不要求在HTML文档中包含内联函数。

当然,你仍然需要一个<script>元素来加载它们(或采取诸如使用XMLHttpRequest获取脚本数据并通过eval运行它 - 这是不推荐!)。

如果您遇到问题,则很可能是由于<script>元素无法加载文件。浏览器中的开发人员工具显示了最常见的原因:

  • 网址错误(网络标签会告诉您,您没有获得200 OK响应)
  • 内容类型不是application/javascript(或遗留text/javascript)。控制台将报告错误,“网络”选项卡将显示“内容类型”。
  • <script>元素的HTML错误或位置错误(通常会通过使用标记验证程序来获取)。
相关问题