Origin null is not allowed by Access-Control-Allow-Origin.

后端 未结 2 1798
猫巷女王i
猫巷女王i 2021-01-06 00:19

When I am running the following code:



    
        
        

        
相关标签:
2条回答
  • 2021-01-06 00:53

    For security reasons, browsers blocks Ajax HTTP requests (XHR) from different hosts (origins).

    The d3.json("...") function makes an Ajax request to your http://localhost/... and you are probably serving the HTML from a different host.

    Are you opening the .html as file in the browser? Thats considered a different host. You have some options there:

    • Serve your HTML file from the same web server you are serving the json file
    • Convert your .json into a .js adding something like var mygeodata = {your json here} to the file and adding <script type="text/javascript" src="http://localhost/webserver/us-states.js"></script> in the HTML <head> while also removing the d3.json("...") part. After that you have a global variable with your data in mygeodata
    • Configure your web server to allow CORS.

    If you are studying/prototype (by the looks of it) I would go with the second approach.

    0 讨论(0)
  • 2021-01-06 01:05

    Very late to the party, but for anyone still having issues, it is really easy to set up an http-server instance with NPM from the directory containing all of your files you want to server.

    You would just install http-server globally npm i http-server -g, then run the http-server from your root directory.

    Once the server is running, go to your browser and input the relative path prefixed with localhost:[port][/path/to/file]. Port will be printed out from the command line when you run the http-server for the first time within your repo/directory, and the relative path starts with the directory you ran the http-server. This will properly serve files to the end user, without just copy and pasting a link to the literal local.

    0 讨论(0)
提交回复
热议问题