XHR没有加载XML本地文件

时间:2015-06-21 12:06:09

标签: jquery ajax xml xmlhttprequest jsonp

我试图将XML文件加载到HTML文档中,如here

这是我的剧本:

$(document).ready(function () {
  $.ajax({
    type: "GET",
    url: "Lemon_Bars.xml",
    dataType: "xml",
    success: xmlParser
  });
});

function xmlParser(xml) {
  $(xml).find("ing").each(function () {
    $("div[data-role='content']").append("<p>" + $(this).find("qty").text() + "</p>");
    $("div[data-role='content']").append("<p>" + $(this).find("unit").text() + "</p>");
    $("div[data-role='content']").append("<p>" + $(this).find("item").text() + "</p>");
  });
}

这是示例XML:

<?xml version="1.0" encoding="UTF-8"?>

<recipeml version="0.5">
  <recipe>
    <head>
      <title>#1 Lemon Bars</title>
      <categories>
        <cat>Desserts</cat></categories>
      <yield>1</yield></head>
    <ingredients>
      <ing>
        <amt>
          <qty>1 1/2</qty>
          <unit>cups</unit></amt>
        <item>All-purpose flour</item></ing>
      <ing>
        <amt>
          <qty>2/3</qty>
          <unit>cups</unit></amt>
        <item>Powdered sugar</item></ing>
      <ing>
        <amt>
          <qty>1 1/2</qty>
          <unit/></amt>
        <item>Sticks butter; softened</item></ing>
      <ing>
        <amt>
          <qty>3</qty>
          <unit/></amt>
        <item>Eggs; lightly beaten</item></ing>
      <ing>
        <amt>
          <qty>1 1/2</qty>
          <unit>cups</unit></amt>
        <item>Granulated sugar</item></ing>
      <ing>
        <amt>
          <qty>3</qty>
          <unit>tablespoons</unit></amt>
        <item>Flour</item></ing>
      <ing>
        <amt>
          <qty>1/4</qty>
          <unit>cups</unit></amt>
        <item>Lemon juice</item></ing>
      <ing>
        <amt>
          <qty/>
          <unit/></amt>
        <item>Additional powdered sugar</item></ing></ingredients>
    <directions>
      <step>  In bowl combine flour, sugar and butter.  Pat into 9X13 pan.  Bake for 20
  minutes in a 350F oven.  While it is baking, whisk together eggs, 3 TB
  flour, sugar and lemon juice.  Pour over crust while crust is still hot.
  Bake for an additional 20-25 minutes, or until top is golden brown. Cool on
  a wire rack and dust with additional powdered sugar.

  Posted to Bakery-Shoppe Digest V1 #206 by novmom@juno.com (Angela
  Gilliland) on Aug 29, 1997

</step></directions></recipe></recipeml>

我得到了

  

XMLHttpRequest无法加载file:/// C:/Users/.../Lemon_Bars.xml。交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https,chrome-extension-resource。

我知道我无法从其他域加载某些内容,但为什么我无法访问同一文件夹中的文档?我知道我可以使用JSONP,但有没有办法让这个工作或者它现在真的被弃用了(帖子和教程都是4-6岁)。

如果它真的不再起作用,用JSONP做正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

解决。

  

仅支持协议方案的跨源请求:http,数据,chrome,chrome-extension,https,chrome-extension-resource。

我不知道究竟是什么意思,但我的假设是,我应该通过http加载文件,所以我启动了XAMPP并加载了文件并且它有效。