我正在通过在我的ui5应用程序中的按钮中添加http get功能来检查特定网址是否已启动。
为此,代码如下:
Public Module PublishAllProjects
Sub PublishAllProjectsInSolution()
' Before using this macro, the certficate and security zone must be set.
' You can do this by publishing the projects using the VS IDE.
Dim slnbld2 As SolutionBuild2 = CType(DTE.Solution.SolutionBuild, SolutionBuild2)
'Save changes to all projects and clean.
For Each proj As Project In DTE.Solution.Projects
proj.Save()
Next
slnbld2.Clean(True)
For Each proj As Project In DTE.Solution.Projects
'Verify project is a windows application or console application before continuing
Dim outputType As Integer = proj.Properties.Item("OutputType").Value
If outputType <> 0 AndAlso outputType <> 1 Then
Continue For
End If
'GenerateManifests and SignManifests must always to true for publishing to work.
proj.Properties.Item("GenerateManifests").Value = True
proj.Properties.Item("SignManifests").Value = True
proj.Save()
slnbld2.BuildProject(proj.ConfigurationManager.ActiveConfiguration.ConfigurationName, proj.UniqueName, True)
'only publish if build was successful.
If slnbld2.LastBuildInfo <> 0 Then
MsgBox("Build failed for " & proj.UniqueName)
Else
slnbld2.PublishProject(proj.ConfigurationManager.ActiveConfiguration.ConfigurationName, proj.UniqueName, True)
If slnbld2.LastPublishInfo = 0 Then
MsgBox("Publish succeeded for " & proj.UniqueName)
Else
MsgBox("Publish failed for " & proj.UniqueName)
End If
End If
Next
End Sub
End Module
对于网址输入,我们仅使用https请求。
但是当我为url设置一个值并测试按钮时, 我明白了,
XMLHttpRequest无法加载https://my3 **** 6.sapbydesign.com/sap/byd/runtime/(entered url)。请求的资源上不存在“ Access-Control-Allow-Origin ”标头。因此,不允许原始“https://application浏览器网址”访问。
如何防止这种情况发生? BR Suraj N
答案 0 :(得分:1)
这是针对一类名为Cross-Site Request Forgeries的攻击的浏览器保护。
正如错误消息中所述,除非链接的网站(在本例中为https://my3 **** 6.sapbydesign.com/sap/byd/runtime/)添加了相应的{{ {3}}标题为其回复。
答案 1 :(得分:0)
问题正在发生,因为您的App(正在开始获取的那个)在域A中托管,并且该服务在域B中托管。出于安全原因,浏览器不会让您这样做。
解决此问题的一种方法是让服务器允许来自您域的某些Http谓词。但如果您无法控制服务器端,那么您将无法做到这一点。
另一种方法是在您的端部创建代理服务器并将其配置为将所有请求中继到您打算发出get请求的原始服务器。
然后在您的原始应用中,您将获取到代理服务器。
你可以直接在eclipse中做到这一点: http://help.sap.com/saphelp_nw74/helpdata/de/2d/3f5fb63a2f4090942375df80abc39f/content.htm
或者您也可以在节点上启动代理: