所以我试图与HackerEarth Api合作,并希望在我的网站上加入编译/运行功能。根据可在此处找到的文档 - https://www.hackerearth.com/docs/wiki/developers/v3/我知道使用 下面的python脚本我可以得到我的代码的json响应。
#! -*- coding: utf-8 -*-
import requests
# constants
RUN_URL = u'https://api.hackerearth.com/v3/code/run/'
CLIENT_SECRET = '5db3f1c12c59caa1002d1cb5757e72c96d969a1a'
#not my own secret key
source = "print 'Hello World'"
data = {
'client_secret': CLIENT_SECRET,
'async': 0,
'source': source,
'lang': "PYTHON",
'time_limit': 5,
'memory_limit': 262144,
}
r = requests.post(RUN_URL, data=data)
print r.json()
我尝试运行上面的代码,它工作正常。 我的网站是使用普通的html,cc,js,jquery,bootstrap构建的,我试图使用jquery post方法来实现这一点。
我试过的是 -
code=document.getElementById('codeinput').value;
langaugeUsed=document.getElementById('languageSelector').value;
url='https://api.hackerearth.com/v3/code/compile/';
secret = '5db3f1c12c59caa1002d1cb5757e72c96d969a1a'; //not my own secret key
$.post(url, {client_secret: secret,
async: 0,
source: code,
lang: languageUsed,
dataType:'json',
time_limit: 5,
memory_limit: 262144 },
function(returnedData){
alert(returnedData);
}, 'json');
当我检查我的控制台时,我在尝试运行脚本后遇到了这些错误 -
无法加载资源:服务器响应状态为403(禁止) index.html#:1 XMLHttpRequest无法加载https://api.hackerearth.com/v3/code/compile/。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许原点'null'访问。响应的HTTP状态代码为403。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
由于CORS,您面临的问题。默认情况下,浏览器不允许在不同的URL上发送请求。因此,您需要通过添加CORS标头手动允许此操作。
你可以好好看看CORS Python Library