我对CORS完全陌生,遇到以下问题:
-我正在使用create-react-app(端口3000),该应用程序调用在Spring Boot(端口8080)中进行的一些REST服务。我将JWT身份验证添加到我的REST API中,因此现在我必须先进行身份验证,然后再调用其他任何内容。
事情是,我可以在SpringBoot项目index.html(用于测试jwt auth)中进行身份验证,但是现在我在React上调用了/ auth POST,我得到了200 OK,但我似乎无法在任何地方找到令牌在回应中。
SpringBoot index.html
function doLogin(loginData) {
$.ajax({
url: "/auth",
type: "POST",
data: JSON.stringify(loginData),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data, textStatus, jqXHR) {
setJwtToken(**data.token**); //I can get the token without a problem
$login.hide();
$notLoggedIn.hide();
showTokenInformation();
showUserInformation();
},....
Run Code Online (Sandbox Code Playgroud)
使用CORS进行React Fetch(端口3000)
fetch(url, {
crossDomain:true,
method: 'POST',
headers: {'Content-Type':'application/json'},
body: JSON.stringify({
username: user,
password: pass,
})
}).then((responseJson) => {
console.log(responseJson);
const tokenInfo = this.state.token;
if(tokenInfo !== undefined)
.....
Run Code Online (Sandbox Code Playgroud)
虽然react fetch返回200 OK,但我得到的是一个挑剔的响应,似乎无法像没有CORS一样获得responseJson.token。我想念什么?
响应:
Response {type: …Run Code Online (Sandbox Code Playgroud) 我正在尝试在每个单元格中使用带有ImageView和TextView的GridView.所以我创建了单元格布局,网格布局,imageAdapter和主要活动,当然,但我不断遇到以下问题:
当我在模拟器上尝试这个时,初始图像和标题会正确显示,但是一旦我向下滚动,一些项目开始变得混乱并且不断变化甚至重复一些时间.
我正在使用2个并行阵列(图像和标题).我尝试使用Log.v函数来查找调用getView时显示的索引和图像,但只能正确分配初始的(可以看到没有滚动).
我通过一遍又一遍地生成视图来解决问题,但这显然不是正确的方法.
这是我正在使用的文件:
网格单元格:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal">
<ImageView android:id="@+id/grid_item_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ImageView>
<TextView android:id="@+id/grid_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:gravity="center_horizontal"
android:textColor="#FFFFFF">
</TextView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
网格视图:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:gravity="center_vertical"
android:text="@string/txtMenu"
/>
<GridView
android:id="@+id/grdMenu"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="50dp"
android:gravity="center"
android:padding="10dp"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:numColumns="3" >
</GridView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
GridActivity :(唯一实现的方法)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
GridView gridview = (GridView) findViewById(R.id.grdMenu);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new OnItemClickListener() …Run Code Online (Sandbox Code Playgroud)