0

所以我试图从ajax调用一个api。我已经对本地 url 进行了 ajax 调用。现在我希望本地 url 进行 url 调用并返回返回的数据。URL 是 RESTful 的。

$.ajax({
    type: 'POST',
    dataType: 'application/json',
    accept: 'application/json',
    async: false,
    username: 'username',
    password: 'password',
    url: '/postdata/',
    data: {
        "name": "Marcus0.7",
        "start": 500000,
        "end": 1361640526000
        },
    success: function(){alert('DONE!');},
    error:function(error){alert(error)},
    });

我试图调用的api是(在python中): 这就是我想要实现的服务器端我该怎么做?

r = requests.post('https//extenal.api' ,headers={'content-type': 'application/json'}, auth=auth, data=json.dumps(data))

在 Django 中:

视图.py

def postdata(request):
    return render(request, 'livestream/postdata.html')

网址.py

    url(r'^postdata$', 'livestream.views.postdata')

谢谢

4

1 回答 1

1

Ajax 可以进行跨域调用,但其他域必须允许您通过使用CORS来执行此操作。

但是,如果您真的只需要反映您自己域中的外部 API,您可以将您的 Web 服务器设置为反向代理外部 API 的相关端点。这将比通过 Django 代理更高效。您甚至可以使用您的 Web 服务器将身份验证详细信息添加到代理请求中。

于 2013-08-08T02:43:56.150 回答