怎样使用ajax调用restful webservice
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样使用ajax调用restful webservice相关的知识,希望对你有一定的参考价值。
参考技术A clipse中使用Jersey和Tomcat构建RESTful WebService及其调用 wenyushu12342013-10-27上传 在Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用如何使用 javascript/jquery/AJAX 调用 Django REST API?
【中文标题】如何使用 javascript/jquery/AJAX 调用 Django REST API?【英文标题】:How to call Django REST APIs using javascript/jquery/AJAX? 【发布时间】:2016-10-23 06:31:02 【问题描述】:我想使用 Javascript、jQuery、AJAX 在前端调用 Django Rest API。请求方法是 POST 但是当我看到 API 调用它的调用 OPTIONS 方法时。所以,我开始了解access-control-allow-origin
,我猜它需要在 API 中被允许。为此,我使用了django-CORS-headers
包,但仍然调用了OPTIONS
方法。
代码是这样的:
jQuery.ajax(
url: API_url,
headers:headers,
dataType: "JSON",
type: "POST",
crossDomain: true,
xhrFields:
withCredentials: true
,
success: function( response, jqXHR )
do something here
);
【问题讨论】:
【参考方案1】:好吧,我很久以前就知道了这个答案,但忘记了我当时发布了这个问题!
因此,每当两个应用程序之间发出 http 请求时,浏览器都会首先发出 OPTION
请求,以检查应用程序是否经过身份验证以向另一个应用程序发出请求。如果身份验证失败,则不会发送其他请求。这就是为什么如果你向 api 发出邮递员请求,它会在不启用 cors 的情况下工作。因此,为了使跨源请求能够正常工作,请在 django settings.py
中设置密钥 CORS_ORIGIN_ALLOW_ALL = True
,以便为所有域启用 CORS。将指定域设置为白名单
CORS_ORIGIN_ALLOW_ALL = False
,
CORS_ORIGIN_WHITELIST = ('http//:localhost:8000')
P.S.:你必须使用django-CORS-header
包。
【讨论】:
以上是关于怎样使用ajax调用restful webservice的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 javascript/jquery/AJAX 调用 Django REST API?
使用 jQuery/Ajax 从 JavaScript 调用 WCF/JSON/REST WebService
拒绝使用 ajax 调用 Rest 服务器设置不安全的标头“Cookie”
无法在 iPhone 的 PhoneGap 中使用 AJAX(简单 javascript)调用基于 REST 的 Web 服务