duanmi4379 2013-08-02 18:39
浏览 187
已采纳

Ajax请求不使用dataType“jsonp”或“json”

I'm trying to use JSON as a return type for an Ajax request (using jQuery) but my code always results in an error. I've tried changing the MIME type between json and jsonp but to no avail.

I'm also not sure if I'm formatting the data: part correctly. I understand that I need to wrap all of its information in a string for JSON, but I don't know if it's correct.

$.ajax({

    type: "POST",
    url: '-----',
    dataType: "jsonp",
    data: '{"jobtitle":"job"}',

    beforeSend:function(){ },


    success: function(data){
        var data = $.parseJSON(data);           

    },
    error: function(){
        alert("error with Ajax request");
    }

});

Edit: Here is my server-side code. I don't know how to return valid JSON from this.

<?php 


$jobtitle = $_POST["jobtitle"];
$city = $_POST["city"];
$state = $_POST["state"];



$url = "http://www.indeed.com/jobs?q=". $jobtitle ."&l=". $city ."%2C". $state;
$document = new DOMDocument;

$html = file_get_contents($url);
$document ->loadHTML($html);
$xpath= new DOMXPath($document);

$results = $xPath->query('//div[@id="searchCount"]');

$string = "";

if ($results){
    for ($i=0; $i < $results->length; $i++) {
            $node = $results->item($i)->textContent;


    }
    $exp = explode(" ", $node);

    print "Number of jobs: <b>".$exp[5]. "</b>";


}
  • 写回答

4条回答 默认 最新

  • dryb38654 2013-08-02 18:46
    关注

    Take the single quotes out of this

     data: '{"jobtitle":"job"}',
    

    to make it

     data: {"jobtitle":"job"},
    

    Your datatype should probably be json. JSON with padding (jsonp) is for cross domain ajax(ish) requests.

    and in your success callback data will be a json object not a json string so

     var data = $.parseJSON(data);  
    

    Is not needed.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?