小编gae*_*ael的帖子

简单的JSONP和PHP示例不起作用

一直试图创建一个简单的JSONP调用,但它并不总是有效,我不知道为什么.这是代码:

server-side(http://server/server.php):

<?php
    $res = json_encode("It works!");

    if(isset($_GET['callback']) === TRUE) {
        header('Content-Type: text/javascript;');
        header('Access-Control-Allow-Origin: http://client');
        header('Access-Control-Max-Age: 3628800');
        header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
        echo $_GET['callback']."(".$res.");";
    } else {
        echo $res;
    }
?>
Run Code Online (Sandbox Code Playgroud)

客户端(http://client/client.html):

<html>
    <head><title>JSONP</title></head>
    <body>
        <h1>JSONP Experiment</h1>
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script>
            function process(data) {
                $('#result').text(data);
            }

            $.getJSON(
                'http://server/server.php?callback=?',
                {'callback': 'process'}
            );

        </script>
        <p id="result"></p>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

此代码工作并显示"它工作!" 在我的

块.

  • 当我不使用{'callback': 'process'}并将?callback = process直接放入$ .getJSON()URL 时,为什么它不起作用?

  • 如果我使用<script src="http://server/server.php?callback=process"></script>而不是$ .getJSON()调用,为什么它不起作用?

两个非工作案例实际上都会返回,process("It works");但这不会被执行,为什么?

谢谢

php jsonp

3
推荐指数
1
解决办法
853
查看次数

标签 统计

jsonp ×1

php ×1