CORS从pastebin

时间:2015-04-25 22:06:20

标签: javascript cors pastebin

我希望使用CORS从pastebin加载代码片段,然后在浏览器中处理它们。

正在进行的一些代码在这里:   http://www.boisvert.me.uk/opendata/sparql_aq+.html

代码突出显示,并且有运行它的选项等。

我想提供一个简单的服务,用户将文本保存在公共场所,然后查询:

http://www.boisvert.me.uk/opendata/sparql_aq+.html?sparqlURL=whatever-url

例如,URL为:

http://pastebin.com/raw.php?i=grUU9zwE

http://www.boisvert.me.uk/opendata/sparql_aq+.html?sparqlURL=http%3A%2F%2Fpastebin.com%2Fraw.php%3Fi%3DgrUU9zwE

但是当使用CORS时,存储库返回一个空文件。 CORS是否被某些系统阻止(例如,通过pastebin.com?)或我做错了什么?

我附加了来自firefox调试器的图像,显​​示,除非我遗漏了这一点,CORS返回了空白响应,如果有帮助,则显示GET标题。

Firefox network tool - request OK, but result appears blank The same problem, different sceenshot

最后,我的CORS代码:

function CORSRequest(url) {
   var xhr = new XMLHttpRequest();

   if ("withCredentials" in xhr) {
      // Check if the XMLHttpRequest object has a "withCredentials" property.
      // "withCredentials" only exists on XMLHTTPRequest2 objects.
      xhr.open("GET", url, true);
   } else if (typeof XDomainRequest != "undefined") {
      // Otherwise, check if XDomainRequest.
      // XDomainRequest only exists in IE, and is IE's way of making CORS requests.
      xhr = new XDomainRequest();
      xhr.open("GET", url);
   } else {
      // Otherwise, CORS is not supported by the browser.
      throw new Error('CORS not supported');
   }

   if (xhr) {
      xhr.onload = function() {
         // process the response.
         document.getElementById("sparql").value = xhr.responseText;
      };
      xhr.onerror = function() {
         alert('Not loading.');
      };
   }
   xhr.send();
}

2 个答案:

答案 0 :(得分:4)

要使其从客户端运行,您可以使用cors.io之类的CORS代理,也可以编写自己的代理。

在使用 cors.io 的情况下,您可以像这样在服务的网址之前添加

https://cors.io/?http://pastebin.com/raw.php?i=grUU9zwE

答案 1 :(得分:1)

购买Pastebin Pro帐户后,可以通过CORS(使用原始链接)自动公开检索您的帐户粘贴