【问题标题】:Pass online 'url' into ajax in jquery将在线'url'传递到jquery中的ajax
【发布时间】:2018-03-25 13:30:03
【问题描述】:

我有一个 ajax 代码

<script>
function myFunction() {
       $("#dvContent").append("<ul></ul>");
        $.ajax({
            type: "GET",
            url: "test.xml",
            dataType: "xml",
            success: function(xml){
                $(xml).find('record').each(function(){
                var sTitle = $(this).find('datafield[tag="245"]').find('subfield[code="a"]').text();
                 var sAuthor = $(this).find('datafield[tag="100"]').find('subfield[code="a"]').text();
                  var sIsbn = $(this).find('datafield[tag="020"]').find('subfield[code="a"]').text();


                $.getJSON('https://www.googleapis.com/books/v1/volumes?q=isbn:0545010225', function(data) {
        
                var text = `${data.items[0].volumeInfo.imageLinks.thumbnail}`


                var x = document.createElement("IMG");
                x.setAttribute("src", text);
                 document.body.appendChild(x);



                

                  
        
        $(".mypanel").html(text);
    });


                $("<li></li>").html(sTitle).appendTo("#dvContent ul");
                $("<li></li>").html(sAuthor).appendTo("#dvContent ul");
                $("<li></li>").html(sIsbn).appendTo("#dvContent ul");
                    });
            },
            error: function() {
            alert("An error occurred while processing XML file.");
            }
        });
}
</script>

现在我想从链接而不是本地文件中获取值,在我的情况下为 test.xml

我试过放

 url: "http://lx2.loc.gov:210/lcdb?operation=searchRetrieve&amp;recordSchema=marcxml&amp;version=1.1&amp;maximumRecords=10&amp;query=bath.isbn%3D0545010225"

然后我的代码停止工作。 对此的任何帮助将不胜感激。

编辑 1:我用谷歌搜索了一下,我意识到这是一个跨域问题。

【问题讨论】:

    标签: javascript jquery html json xml


    【解决方案1】:

    您可能遇到了 CORS 问题。通常,您只能从在同一个脚本中执行的脚本中访问一个域。

    您可以在这里了解它: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

    当然,您可以更改服务器配置以允许访问更多域(如果您正在控制它)。

    看看有趣的文档 :)

    【讨论】:

    • 你。我已经阅读了所有内容,我正在考虑创建一个脚本标签并在其中调用 URL,并尝试将它与我的 AJAX 调用连接起来。
    • 这根本不会帮助你,你实际上可以做的是在服务器端使用实际请求来执行此操作。如果您构建一个发出请求的小型 nodejs / php 应用程序,您可以在其中控制 CORS,那么您的 js 会访问您的服务器,并且服务器会访问端点。
    • 类似,当我插入我的搜索字符串时,它会转到后端(PHP),在那里我将使用 file_get_contents() 提取 URL 的内容,然后将其传递到前端在 Ajax 部分内部。
    • 正是 :) 看看这篇文章:stackoverflow.com/questions/29837162/…
    • 如果这有帮助,您能否将我的答案设置为有效?谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2018-12-24
    • 2011-06-13
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多