Простой запрос ajax - PullRequest
       3

Простой запрос ajax

1 голос
/ 23 марта 2012

Я новичок в ajax и пытаюсь заставить работать следующий скрипт. Я просто хочу взять информацию из объекта json и распечатать ее в документе.

Вот файл JSON с именем companyinfo.json:

{
'id':1,
'name':'Stack'


}

Запрос Ajax выглядит следующим образом:

ar xhr = false;
var xPos, yPos;

$(function(){

    var submitButton = $("#dostuff");
    submitButton.onclick = sendInfoRequest;

});

function sendInfoRequest (evt) {
    if (evt) {
        var company1 = $("#companyInput1").val;
        var company2 = $("#companyInput2").val;
    }
    else {
        evt = window.event;
        var company = evt.srcElement;
    }
    $.ajax({
        url : 'companyinfo.json',
        dataType: 'json',
        data: company1,
        success: function(data) {
            console.log(data);
            var items = new Array ();
            $.each(data, function(key, val) {
                items.push('<li id="' + key + '">' + val + '</li>');
            });
        }

    });


    return false;
}
console.log(data.id);

Для начала просто. Я просто console.log data.id, чтобы увидеть, вернул ли скрипт значение из файла json.

Чтобы записать это в документ, я бы сделал что-то вроде этого, вызвав функцию showContents в функции обратного вызова выше:

function showContents(companyNumber) {
    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            var outMsg = xhr.responseXML;
            $("." + data.companyName.toLowerCase + companyNumber).innerHTML(data.companyName)
        }
        else {
            var outMsg = "There was a problem with the request " + xhr.status;
        }


    }
}

Я довольно новичок в Ajax, но, надеюсь, в этом есть какой-то смысл. Спасибо

Ответы [ 4 ]

0 голосов
/ 23 марта 2012

вы можете сделать так:

 $.getJSON("getJson.ashx", { Index: 1 }, function (d) {
                    alert(d);
                });
0 голосов
/ 23 марта 2012

Я не уверен в этом в вашем коде:

var company1 = $("#companyInput1").val; //should it be with ()??
var company2 = $("#companyInput2").val; //should it be with ()??

должно быть с () как этот:

var company1 = $("#companyInput1").val();
var company2 = $("#companyInput2").val();
0 голосов
/ 23 марта 2012

Самый простой способ получить и проанализировать JSON - это использовать $. GetJSON

// you need to use a map as your data => {key : value}
$.getJSON("companyinfo.json", {company : company1}, function(data){
  console.log(data);
  var items = []; // new Array();
  $.each(data, function(key, val){
    items.push('<li id="' + key + '">' + val + '</li>');
  });
  // do something with items
});
0 голосов
/ 23 марта 2012

если вы пытаетесь получить что-то, я думаю, вы должны добавить

type:"GET" 

к вашему $ .ajax, это должно выглядеть так:

$.ajax({
    url : 'companyinfo.json',
    dataType: 'json',
    type:"GET",
    contentType: "application/json; charset=utf-8",
    data: company1, //What is your purpose for adding this?
    success: function(data) {
        console.log(data);
        var items = new Array ();
        $.each(data, function(key, val) {
            items.push('<li id="' + key + '">' + val + '</li>');
        });
    }

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...