我遇到了非常奇怪的错误。
我在控制器中有两种方法,它们由 angular js http get 事件调用。
第一个工作正常,第二个是抛出 CORS 错误,不确定这怎么可能,因为它们都在同一个控制器中。
这些是我在 angularjs 中所做的调用:
$http({
url: 'http://localhost:52876/api/Admin/GetLoanInfo',
method: "GET",
params: { loanID: querystringParam }
}).success(function (data, status) {
console.log(data);
$scope.LoanDetailsVM.LoanStatus = data.LoanStatus;
}).error(function (data, status) {
console.log(data);
});
$http({
url: 'http://localhost:52876/api/Admin/GetLoanCovenants',
method: "GET",
params: { loanID: querystringParam }
}).success(function (data, status) {
console.log(data);
}).error(function (data, status) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
和控制器方法:
[HttpGet]
[Route("api/Admin/GetLoanInfo")]
public async Task<IHttpActionResult> GetLoanInfo(int loanID)
{
LoanApplication newApplication = null;
newApplication = db.LoanApplications.FirstOrDefault(s => s.LoanId == loanID);
return …Run Code Online (Sandbox Code Playgroud) 我正在测试一个控制器,它具有以 .js.erb 格式呈现视图的动作。对这些操作的测试会引发以下错误:
Minitest::UnexpectedError: ActionController::InvalidCrossOriginRequest: 安全警告:另一个站点上的嵌入标记请求受保护的 JavaScript。如果您知道自己在做什么,请继续并禁用此操作的伪造保护以允许跨源 JavaScript 嵌入。
伪造保护导致此错误,因为当我对这些操作设置异常时,它可以,但我不想禁用它。
这是我的控制器:
class TasksController < ApplicationController
def new
# TODO add blah later
@task = Task.new
render 'tasks/show_form.js.erb'
end
def create
# FIXME there is bug here
@task = Task.new(task_params)
@task.user = current_user
authorize! :create, @task
save_task
end
def edit
@task = Task.find(params[:id])
authorize! :edit, @task
render 'tasks/show_form.js.erb'
end
def update
@task = Task.find(params[:id])
@task.assign_attributes(task_params)
authorize! :update, @task
save_task
end
def destroy
@task = Task.find(params[:id])
authorize! :destroy, @task
@task.destroy
@tasks = …Run Code Online (Sandbox Code Playgroud) 我正在使用 Javascript XMlHttprequest api 发出跨站点 http 请求,以在 post 方法中发送和检索数据。目的是使用第 3 方提供的此服务发送短信。但是我无法这样做,因为浏览器不允许这样做,并收到以下错误响应“跨源请求被阻止:同源策略不允许读取http://trans.smsfresh.co/api上的远程资源” /sendmsg.php。(原因:CORS 标头 \xe2\x80\x98Access-Control-Allow-Origin\xe2\x80\x99 缺失)。”
\n\n是否可以使用 html 和 javascript 来实现这一点?
\n我正在构建一个应用程序,用户看到一组缩小的图像,然后按“确定”让应用程序下载所有原始文件,将它们放入 zip 文件并发送 zip 文件。
该应用程序使用聚合物、聚合物火、火力(包括存储)。
在上传图像的过程中,我将原始文件和缩小后的文件的下载 url 和存储引用都保存在数据库中。
当我将下载 url 放在 Iron-image 元素中以在浏览器中显示图像时,一切正常,缩小后的图像显示在屏幕上。当我尝试通过 XMLHttpRequest() 下载全尺寸图像时,出现 Cors 错误。我不明白为什么,两个请求都来自同一个应用程序,为什么两个不同的 cors 响应?
这是 XMLHttpRequest() 的代码(主要从 firebase 文档中复制):
for (var z = 0; z < visita.immagini.length; z++) {
var immagine =visita.immagini[z]
var storage = firebase.storage();
var pathReference = storage.ref('immagini/'+ immagine.original.ref);
pathReference.getDownloadURL().then(function(url) {
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function(event) {
var blob = xhr.response;
console.log(blob);
};
xhr.open('GET', url);
xhr.send();
}).catch(function(error) {
console.log(error);
});
}Run Code Online (Sandbox Code Playgroud)
这是错误响应:
XMLHttpRequest 无法加载 ***** [图片链接]*****。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问Origin …
我正在使用Spring Boot v1.5.1,似乎我对CORS起源的限制不起作用.
我的application.properties文件包含以下行(ref1 ref2).
endpoints.cors.allowed-origins=http://mydomain.io
Run Code Online (Sandbox Code Playgroud)
我的REST控制器如下所示.
@RestController
@CrossOrigin
@RequestMapping("/api/car")
public class CarCtrl {
@Autowired
private CarService carService;
@GetMapping
public Car get() {
return carService.getLatest();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我打开浏览器并输入时,http://localhost:8080/api/car我仍然可以访问REST端点.
我也尝试按如下方式更改我的注释,但这不起作用.
@CrossOrigin("${endpoints.cors.allowed-origins}")
Run Code Online (Sandbox Code Playgroud)
关于我做错了什么的任何想法?
请注意,我没有WebMvcConfigurerAdapter像这篇文章那样使用.我是否真的需要扩展此类以明确控制原点?我认为@CrossOrigin除了属性文件设置之外的注释将能够控制允许的原点(而不是必须以编程方式执行).
我正在尝试在 flow.ch 上从 Cloudant 迁移到 Jelastic。在本地测试(离子服务)时,我遇到了 pouchdb 的 CORS 错误。
除了我缺少的 CouchDB 之外,Jelastic 中还有其他配置吗?
XMLHttpRequest 无法加载http://xxx.flow.ch/xxx。对预检请求的响应未通过访问控制检查:当请求的凭据模式为“包含”时,响应中“Access-Control-Allow-Origin”标头的值不得为通配符“*”。因此,不允许访问Origin ' http://localhost:8100 '。XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。
我正在使用ReactJS和create-react-app构建一个简单的 Web 应用程序。
我在 Heroku 上设置了一个后端 API,我可以在其中发出POST请求。一切正常,除了:
当我使用 fetch API 发出 POST 请求时,响应是 100% 正确的,但它只给了我 2 个标准标头。我想获得我的自定义标题。我在响应中添加了公开标头,这是情节扭曲:当我从 Chrome 检查工具或邮递员(API 工具)查看标头时,它会显示所有标头,包括我的自定义标头。这是我正在使用的提取代码 -
fetch(theUrl, {
method: 'POST',
body: JSON.stringify({
"placeholder": "placeholder"
})
})
.then(function(res) {
console.log(res.headers.get('CUSTOM_HEADER_NAME'));
})
Run Code Online (Sandbox Code Playgroud)
如果有什么不同,这个 fetch 方法是从 ReactJS 组件主体之外的函数调用的。
自定义标题的名称Image-Identification-Path,并在我的响应头报头Access-Control-Expose-Headers的Image-Identification-Path。
摘要:如何使用 fetch 获取自定义标头?
我想在从画布录制的同时从视频元素录制音频。我有
var stream = canvas.captureStream(29);
Run Code Online (Sandbox Code Playgroud)
现在我将视频的audioTrack 添加到流中。
var vStream = video.captureStream();
stream.addTrack(vStream.getAudioTracks()[0]);
Run Code Online (Sandbox Code Playgroud)
但这会降低添加每个视频的性能。由于 captureStream() 对视频的处理非常繁重,并且还需要在 Chrome 中打开一个标志。有没有一种方法可以从视频元素仅创建音频 MediaStream,而不使用 captureStream()。
javascript google-chrome html5-video html5-audio mediastream
我在发送 SOAP 请求时遇到问题。我研究过这个主题,并在此处和其他地方看到了很多关于该主题的帖子,但没有任何内容对我有用或真正解决了我遇到的问题。为了更具体地说明我正在尝试做的事情,我正在尝试访问 BrightSign 网络上的 API。文档链接位于此处。我尝试通过 html 页面上的 javascript 函数运行我的请求,但没有成功。我每次都会收到“没有‘访问控制允许来源’”错误。我安装了一个附加组件,我认为它是绕过此问题的修复程序,尽管我没有收到 Access-Control-Allow-Origin 错误,但收到了 200 代码错误。我最大的问题是我已经下载了 SoapUI 并通过那里运行了一个请求。当这样做时,我收到了预期的回复!我尝试将 SoapUI 中的原始 XML 复制并粘贴到我的测试页面中,但没有成功。我每次都会遇到相同的错误。对此的任何帮助将不胜感激。
谢谢
这是我正在使用的页面的代码:
function soap(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'https://api.brightsignnetwork.com/2014/12/SOAP/Basic/', true);
// build SOAP request
var sr =
'<soapenv:Envelope xmlns:soap="https://api.brightsignnetwork.com/2014/12/SOAP/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">' +
'<soapenv:Header>' +
'<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">' +
'<wsse:UsernameToken wsu:Id="UsernameToken-541861B587A894A0A714970165483407">' +
'<wsse:Username></wsse:Username>' +
'<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"></wsse:Password>' +
'<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">tlWiCWeD9E8JEaY00RfAhA==</wsse:Nonce>' +
'<wsu:Created>2017-06-09T13:55:48.340Z</wsu:Created>' +
'</wsse:UsernameToken>' +
'</wsse:Security>' +
'</soapenv:Header>' +
'<soapenv:Body>' +
'<soap:GetDynamicPlaylistByName>' +
'<soap:name></soap:name>' +
'<soap:loadContent></soap:loadContent>' +
'</soap:GetDynamicPlaylistByName>' …Run Code Online (Sandbox Code Playgroud) Medium有一个RSS源,可通过https://medium.com/feed/[@username]获得.我正在尝试使用XMLHTTPRequest获取所有博文.当我在本地测试时,我遇到了CORs错误.当我打开CORs Chrome扩展程序时,出现401错误.有任何想法吗?有没有人成功调用Medium RSS?
cors ×7
javascript ×6
angular-http ×1
angularjs ×1
asp.net ×1
couchdb ×1
cross-domain ×1
fetch-api ×1
firebase ×1
frontend ×1
html5-audio ×1
html5-video ×1
http ×1
http-headers ×1
ionic2 ×1
java ×1
jelastic ×1
localhost ×1
mediastream ×1
reactjs ×1
rss ×1
spring ×1
spring-boot ×1
spring-mvc ×1
xml ×1