weixin_33671935 2016-08-15 16:37 采纳率: 0%
浏览 40

将jsonp与Ajax HTML结合使用

I have a simple html page that I open directly, file://abc.html

It has the following code

  $.ajax({
        url: "http://localhost:8080/ajax_info.php",
        dataType: "jsonp",
        jsonp: 'jsoncallback',
        success: function(data) {
            alert(data);
        }
    });

ajax_info.php has echo 'hello' only in it.

On each reload the Network tab in chrome shows that a request is made to

http://localhost:8080/ajax_info.php?jsoncallback=jQuery1111016803214247142373_1471278920224&_=1471278920236

and hello as a response is received but I dont get the alert box.

When I execute the page it shows nothing (no alert box), I am supposed to get alert with hello in it, Am I doing something wrong ?

  • 写回答

2条回答 默认 最新

  • H_MZ 2016-08-15 16:45
    关注

    Try adding this function to yours:

    function jsoncallback(json){
     alert(json);
    }
    

    EDIT: and when you want to use JSONP the server should echo params in the function you want:

    do this on server

    echo 'jsoncallback("hello!")';
    

    or this:

    echo 'jsoncallback('. json_encode($some_data) .')';
    

    Of course 'jsoncallback' is the name of user function, that any user may want to change, so you have to do it right way:

    echo $user_sent_me_this_name . '(' . json_encode($some_data) . ')';
    
    评论

报告相同问题?