簡體   English   中英

創建在不同服務器上使用的javascript文件

[英]create javascript file for use on different servers

我想創建一個JS文件,其他人可以在他們的網站上包括這些文件,以便他們可以使用類似於facebook like like按鈕的API來引用訪問我的數據庫的功能,該按鈕顯示喜歡的總人數以及喜歡該頁面的朋友們。 作為測試的一部分,我一直在做以下工作:JS文件

function getItemRating(id){
    var result = "";
    $.ajax({
        type: "POST",
        url: "http://siteurl.com/api/rating.php",
        data: {i : id},
        dataType: "json",
        async: false,
        success: function(data) { // callback for successful completion
          result = data;
        },
        error: function() { // callback if there's an error
          result = 'error';
        }
      });
    return result;
}

參考文件包括:

header("Access-Control-Allow-Origin: *");

在另一台服務器上,我嘗試了幾種方法,包括:

    <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>

<script type="text/javascript" src="www.siteurl.com/api/rating-file.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
    var result = getItemRating(1);
    console.log(result);


});
</script>
</head>
<body></body>
</html>

但是目前我在控制台中遇到錯誤:

VM133:1從源' http://otherurl.com '對' http://siteurl.com/api/rating.php '處的XMLHttpRequest的訪問已被CORS策略阻止:對預檢請求的響應未通過訪問控制檢查:所請求的資源上沒有“ Access-Control-Allow-Origin”標頭。

siteurl.com =我的js文件(帶有功能)所在的服務器otherurl.com =包含js的html所在的其他服務器

該錯誤消息告訴您問題出在對預檢請求的響應上,但是您不應該首先觸發它。

去掉:

contentType: "application/json; charset=utf-8",

因為:

  • 這是一個謊言。 您沒有在GET請求中發布JSON。
  • 將content-type設置為該值會觸發預檢請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM