需要一个javascript函数来回复Ajax Call

时间:2011-04-23 05:32:59

标签: javascript ajax

我想在ajax调用中获取javascript函数。我的代码工作正常并返回我的javascript代码,但我收到的javascript函数有问题。这是我的Ajax代码..

function media_type(id)
{
    var xmlhttp;
    if (window.XMLHttpRequest)
    {   
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
        else
        {   
            // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    eval(document.getElementById("asad").innerHTML=xmlhttp.responseText);
                }
            }
    xmlhttp.open("GET","video/media_type.php?cat_id="+id,true);
    xmlhttp.send();
    }

她是代码,我将返回一个简单的hello world警告框。

    if($num_rows==0)
    {
    //echo("Sorry no record found.");

    echo'<script type="text/javascript">
                alert("hello World");
                </script>';
    }

我正在准确地收到代码,但代码没有执行。请告诉我如何解决这个问题。提前谢谢。

5 个答案:

答案 0 :(得分:1)

我可以问你为什么需要从服务器返回JavaScript吗?你如何从服务器返回一个简单的响应(字符串,布尔值,数字),并根据返回值执行已经存在于客户端的东西?更安全,更容易。它可能不是你想要的解决方案,但你的js-fu会更强大。

答案 1 :(得分:0)

前几天我有这个问题......

你必须在php页面中将你的标题设置为Content-Type:text / javascript;字符集= UTF-8

以下是完成此工作的整个代码

对于你的php文件

<?php 
header("Content-Type: text/javascript; charset=utf-8");
echo'<script type="text/javascript">
            alert("hello World");
            </script>
      ';?>

这是Javascript

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
        <script>
$.ajax({
        type:'POST',
        url:'toget.php',
        success:function(d)
        {
            $(document).append(d);
        }
        });
        </script>

答案 2 :(得分:0)

我将尝试使用此

if($num_rows==0)
{
//echo("Sorry no record found.");
 echo'<html><script type="text/javascript">
            alert("hello World");
            </script>
      </html>';
}

我认为这一行正在制造问题

eval(document.getElementById("asad").innerHTML=xmlhttp.responseText)

eval(document.getElementById("asad").innerHTML='<script>alert("Hi");</script>';)

转换为

eval(document.getElementById("asad").innerHTML='&lt; script &gt; alert("Hi");&lt;/script&gt;';)

答案 3 :(得分:0)

只需返回要执行的JS(alert("hello World");)并创建eval即可。移除<script type="text/javascript"></script>

eval(xmlhttp.responseText);

将是:

eval('alert("hello World")');

答案 4 :(得分:-1)

//try using this
<?php
  if($num_rows==0)
    {

    //echo("Sorry no record found.");
?>
  <script type="text/javascript">
            alert("hello World");
            </script>
<?php
    }
?>