javascript ajax未获取引用错误函数
javascript ajax uncaught referenceerror function
我在调用此函数时遇到了tittle错误。
<script type="text/javascript">
function upvote(user, id){
fazer = <?php echo $doornot ?>;
if( fazer == 'true'){
window.location = "http://www.dawnsource.com/forums/register.php";
}else {
user = <?php echo $user; ?>;
id = <?php echo $_GET[id]; ?>;
$.ajax({
url: 'scripts/upvote.php',
type: 'post',
data: 'user='+user+'&id='+id,
success: function()
{
alert('success, upvote completed ');
}, error: function()
{
alert('something went wrong, rating failed');
}
});
}
}
</script>
错误正在发生:
user = <?php echo $user; ?>;
但它让我在回声中获得了正确的值。为什么会发生这种情况?
php数据中缺少引号,因此生成了无效的javascript。回想起PHP输出的任何内容都必须在javascript上下文中是正确的。
<?php
$foo = 'bar';
?>
<script>
baz = <?php echo $foo ?>;
</script>
将生成
baz = bar;
并且CCD_ 1将被解释为未定义的变量名称。
正确的解决方案是简单地将PHP中的所有内容作为json:传递
bar = <?php echo json_encode($foo); ?>;
无论$foo中有什么,它都将始终生成有效的javascript。并产生
baz = "bar";
如果$doornot
为布尔值,则true
应为布尔值。此外,在PHP和JavaScript中,字符串引号在返回值时都会被剥离。您的JavaScript看到另一个变量,而不是字符串。尝试:
<script type="text/javascript">
function upvote(){
var fazer = <?php echo $doornot ?>;
if(fazer == true){
window.location = 'http://www.dawnsource.com/forums/register.php';
}
else {
var user = '<?php echo $user; ?>';
var id = '<?php echo $_GET[id]; ?>';
$.ajax({
url: 'scripts/upvote.php',
type: 'post',
data: 'user='+user+'&id='+id,
success: function(){
alert('success, upvote completed');
},
error: function(){
alert('something went wrong, rating failed');
}
});
}
}
</script>
旁注:
我看不出在upvote
函数中使用user
或id
参数,因为您是从PHP获取这些值的,并且仅在一个条件下。此外,您应该在JavaScript中使用关键字var
,除非您希望这些变量是全局的。
相关文章:
- XMLHttpRequest:需要使用ajax中的成功和错误函数
- Javascript 错误:函数预期
- 未捕获的引用错误:函数未使用 onchange 定义
- 如何让jQueryajax执行错误函数
- 未定义未捕获的引用错误函数
- $.ajax在跨域url上不返回错误函数
- jQuery.ajax+php5.3-始终执行错误函数
- javascript未捕获类型错误函数ajax
- 在 Promise 调用的错误函数回调后附加对象的用法是什么
- Ajax 请求在 HandleUnauthorizedRequest 之前命中错误函数
- 引用错误:“函数”未定义
- 黑莓 10 级联 ajax 调用从 javascript 总是执行错误函数
- Ajax 调用弹簧控制器回调错误函数
- 未定义未捕获的引用错误函数
- 主干.js - n捕获异常:语法错误:函数构造函数:无法编译函数
- 引用错误:函数未定义错误
- “未捕获的引用错误:(函数)未定义”与焦点事件
- JavaScript 未捕获的引用错误函数未定义 单击时
- 引用错误:函数未定义
- 类型错误: [函数名称] 不是函数,在猫鼬和节点.js中