我可以在.ajax()请求中为url使用连接字符串吗?

时间:2012-11-26 19:11:37

标签: javascript ajax jquery

我正在进行跨域请求,一旦发出第一个请求,我需要检索ID(并执行其他一些操作),然后将ID用于下一个请求。

到目前为止,挂断的是下一个请求不喜欢连接。这是我的代码,是的,我知道document.write应该更改为console.log()但是console.log不起作用,我可能会在得到当前问题的帮助后问这个问题。问题从第二个.ajax()请求开始。

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script >
$(document).ready(function($) {
 // First link out of three
 var url = 'https://www.sciencebase.gov/catalo
/items?parentId=504108e5e4b07a90c5ec62d4&max=60&offset=0&format=jsonp';

$.ajax({
    type: 'GET',
    url: url,
    jsonpCallback: 'getSBJSON',
    contentType: "application/json",
    dataType: 'jsonp',
    success: function(json) {
    for (var i = 36; i < 37; i++) {
        document.write(json.items[i].id);
            var urlId = json.items[i].id;
    }

        var deferUrl = 'https://www.sciencebase.gov/catalog/itemLink/" + urlId 
+"?format=json&max=10';

            $.ajax({
                type: 'GET',
                url: deferUrl,
                jsonpCallback: 'getSBJSON',
                contentType: "application/json",
                dataType: 'jsonp',
                success: function(json) {
                    // Get the next id to use for the next url

                    document.write(deferUrl);

                    $.ajax({
                        type: 'GET',
                        url: 'https://www.sciencebase.gov/catalog
/item/4f4e4b19e4b07f02db6a7f04?format=jsonp',
                        jsonpCallback: 'getSBJSON',
                        contentType: "application/json",
                        dataType: 'jsonp',
                        success: function(json) {
                        document.write(json.title); 
                        },
                        error: function(e) {
                            console.log(e.message);
                        }
                    });
                },
                error: function(e) {
                    console.log(e.message);
                }
            });
    },
    error: function(e) {
        console.log(e.message);
    }
});
});
</script>
</head>
<body>
</body>
</html>

感谢您的帮助

3 个答案:

答案 0 :(得分:2)

'https://www.sciencebase.gov/catalog/itemLink/" + urlId 
+"?format=json&max=10';

应该是

'https://www.sciencebase.gov/catalog/itemLink/' + urlId 
+'?format=json&max=10';

你混合简单和双打引号。使用'srting' + var + 'string'"string" + var + "string"但不要混用

答案 1 :(得分:0)

仅解决您的连接问题..那里有单引号和双引号的混合。它们都应该是一致的。

例如:

var deferUrl = 'https://www.sciencebase.gov/catalog/itemLink/' + urlId + '?format=json&max=10';

答案 2 :(得分:-1)

我从

稍作改动
for (var i = 36; i < 37; i++) {
            var urlId = json.items[i].id;
    }

 var deferUrl = 'https://www.sciencebase.gov/catalog/itemLink/' + 
 urlId + '?format=jsonp&max=10';

$.ajax({
                type: 'GET',
                url: deferUrl,
                jsonpCallback: 'getSBJSON',
                contentType: 'application/json',
                dataType: 'jsonp',

for (var i = 36; i < 37; i++) {
           var urlId = json.items[i].id;
    }

var deferUrl = urlId;

$.ajax({
                type: 'GET',
                url: 'https://www.sciencebase.gov/catalog/itemLink/' + 
                deferUrl + '?format=jsonp&max=10',
                jsonpCallback: 'getSBJSON',
                contentType: 'application/json',
                dataType: 'jsonp',

这似乎可以解决问题。在将它分配给url之前,它不喜欢完成连接。